質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

787閲覧

Numpy配列中のn個の特定要素の削除に関して

Yuyu45678

総合スコア8

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/08/02 03:25

m×n行列の2次元配列をnumpyに格納しているのですが、例えばarray[100,200]の箇所から要素を任意の個数(例として30個)消すようなことは可能でしょうか?つまり、array[100,200]からarray[100,231]までを消去するということです。
また行をまたぐ場合、array[101,xx]までの間の削除にも適応出来ますでしょうか?
どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/08/02 03:57 編集

日本語で「array[100,200]からarray[100,231]までを」とか「行をまたぐ場合」とか「array[101,xx]までの間の」とか書かれても何を言っているのか伝わらないので、もっと小さいarrayで具体例を示すといいと思いました。 x = np.array( [[1,2,3,4,5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]] ) があるとして、具体的にどういう結果が欲しいでしょう? ということを質問を編集して書くのがいいのでは。
guest

回答3

0

ベストアンサー

こんな感じでしょうか

Python

1import numpy as np 2 3# 列数を維持して要素を削除 4def del_a(a, start, len): 5 shape = a.shape 6 assert( len % shape[1] == 0) 7 st = a.shape[0] * start[0] + start[1] 8 a = a.flatten() 9 a = np.concatenate([a[0:st], a[st+len:]]) 10 return a.reshape((-1,shape[1])) 11 12a = np.arange(12).reshape((4,3)) 13print(a) 14#[[ 0 1 2] 15# [ 3 4 5] 16# [ 6 7 8] 17# [ 9 10 11]] 18 19b = del_a(a, (0,2), 6) 20print(b) 21#[[ 0 1 8] 22# [ 9 10 11]]

投稿2019/08/02 09:03

can110

総合スコア38352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyu45678

2019/08/07 05:18 編集

ご返信ありがとうございます。このプログラムを元に望む出力を得られました!ベストアンサーにさせて頂きます
guest

0

スライスで削除したいものの前後を取得して結合すれば良いです。

python

1a = np.arange(6) 2#array([0, 1, 2, 3, 4, 5]) 3 4a[1:4] #添字0からまで 5#array([1, 2, 3]) 6 7b = np.arange(8).reshape(2,4) 8#array([[0, 1, 2, 3], 9 [4, 5, 6, 7]]) 10 11b[1:2,2:4] #2行目の添字2から3まで 12#array([[6, 7]]) 13 14 15 16

投稿2019/08/02 06:02

meg_

総合スコア10888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyu45678

2019/08/02 09:00

ご返信ありがとうございます。上記プログラムの考えを使って望む結果を得られる光明が見えました。
guest

0

numpy deleteでググればいくつも情報が見られると思います。

投稿2019/08/02 03:41

KojiDoi

総合スコア13727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyu45678

2019/08/02 03:47 編集

Numpy deleteでも何度も検索したのですが、任意の行または列を削除する方法や、特定の値と一致した場合削除する方法しかのっておりませんでした。指定要素からn個分の要素を削除する方法をご教授して頂きたく存じます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問