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

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

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

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

Q&A

解決済

1回答

1039閲覧

ndarrayの要素の指定について

R_SSK

総合スコア15

Python 3.x

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

1グッド

0クリップ

投稿2017/10/23 06:26

プログラミング初心者です。

Pythonでnumpyのndarrayを使い計算を行っているのですが、2次元配列の要素の指定について思うように指定できず困っています。

python

1a = np.arange(0, 100) 2arr = np.reshape(a,(10, 10)) 3i = np.arange(0, 10, 2) 4j = np.arange(1, 10, 2) 5print(arr[i,j])

とした際に、出力が

Python

1[[ 1 3 5 7 9] 2 [21 23 25 27 29] 3 [41 43 45 47 49] 4 [61 63 65 67 69] 5 [81 83 85 87 89]]

となることを期待したのですが、実際は

Python

1[ 1 23 45 67 89]

となってしまいます。

Python

1print(arr[0:10:2, 1:10:2])

とすれば希望通りの出力になるのですが、何度も使うため読みやすさを考えできれば避けたいのですが方法はありますでしょうか?

初歩的な質問かもしれませんがアドバイスを頂ければ幸いです。

manzyun👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

numpy.ix_にて要素の一部を抽出できます。
参考:[Python]Numpyの参照、抽出、結合

Python

1import numpy as np 2a = np.arange(0, 100) 3arr = np.reshape(a,(10, 10)) 4i = np.arange(0, 10, 2) 5j = np.arange(1, 10, 2) 6print(arr[np.ix_(i,j)]) 7""" 8[[ 1 3 5 7 9] 9 [21 23 25 27 29] 10 [41 43 45 47 49] 11 [61 63 65 67 69] 12 [81 83 85 87 89]] 13"""

投稿2017/10/23 06:44

can110

総合スコア38266

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

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

R_SSK

2017/10/23 10:05

ありがとうございます!参考先は閲覧していたのですが理解できていませんでした汗 またよろしければご教授お願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問