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

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

新規登録して質問してみよう
ただいま回答率
85.48%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2064閲覧

numpy.ndarrayのインデックスをリストで指定する

eastsw

総合スコア13

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/10/17 04:19

A = array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]])

の要素を指定するときに,[2, 3]要素を指定するときは

print(A[2, 3]) # 11

とすると思います.
これをリストで指定する場合にはどうすれば良いでしょうか.
例えば,

l = [2, 3] print(A[l])

という感じです.
上記では,実際は2,3行目のスライスが取り出せます.

なんでこういうことをしたいかというと,行列の長さを可変した場合にうまく指定することができないからです.
よろしくお願いします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

listではなくtupleにすれば意図通りの動作になります。

python

1import numpy as np 2A = np.array([[ 0, 1, 2, 3], 3 [ 4, 5, 6, 7], 4 [ 8, 9, 10, 11], 5 [12, 13, 14, 15]]) 6 7l = [2, 3] 8print(A[2, 3]) # => 11 9print(A[l]) 10""" => 11[[ 8 9 10 11] 12 [12 13 14 15]] 13""" 14print(A[tuple(l)]) # => 11 15

参考:
Indexing — NumPy v1.13 Manual

投稿2018/10/17 04:23

編集2018/10/17 04:24
hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問