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

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

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

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

Python

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

Q&A

解決済

1回答

465閲覧

NumPy 整っていない行列のスライス処理がエラーになる

ruiti

総合スコア39

NumPy

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

Python

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

0グッド

0クリップ

投稿2022/12/01 02:58

前提

PythonのNumpyの動作について。
整っていない?行列から適切にスライス処理ができない。

下記の例で
a:入力の配列

a = np.array( [ [ [ 0, 1 ], 2 ], [ [ 3, 4 ], 5 ] ] ) # [[[0, 1], 2], # [[3, 4], 5]]

実現したいこと

以下のスライスをしたいです
1次元目:全て抽出
2次元目:インデックス0(先頭)を抽出
3次元目:インデックス0(先頭)を抽出

結果的に以下のような配列を得たいです。
今回の配列は例になっており、実際には要素数は数百あるのインデックスを直接指定せず、
できるだけスライス処理でスッキリ取得したいです…。

b = 【a のスライス処理】 print( b ) # [0, 3]

試したこと

【a[:,0]】で [[0,1],[3,4]]が取得できたので、
更に各先頭を取得するスライスを追加してみた ➡【a[:,0][:,0]】

するとエラーになりました…。
【a[:,0]】のタイプがdtype('O') になっているのが良くないのでしょうか…?

b = a[:,0][:,0] #IndexError('too many indices for array: array is 1-dimensional, but 2 were indexed')

ご教示お願いします。

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

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

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

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

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

melian

2022/12/01 03:21

> a[:,0]】のタイプがdtype('O') になっているのが良くないのでしょうか 中身がリストなので、それを ndarray に変換して indexing するなど。 np.array(a[:,0].tolist())[:,0]
ruiti

2022/12/01 04:26

リストとnp.arrayの違いがまだ理解できていないようです…。 np.array( [ [ [ 0, 1 ], 2 ], [ [ 3, 4 ], 5 ] ] ) こうしているので、中身は全てnumpy配列?になるのかなと思っておりました。 教えて頂いた内容で課題は解決できました! ありがとうございます。
ruiti

2022/12/01 04:27

ベストアンサーにさせて頂きたいので、回答欄に記載いただいてもよろしいでしょうか?
melian

2022/12/01 05:13

ありがとうございます、回答として記載しました。
guest

回答1

0

ベストアンサー

※ コメントから転記

a[:,0]】のタイプがdtype('O') になっているのが良くないのでしょうか

中身がリストなので、それを ndarray に変換して indexing するとよいかと思います。

python

1np.array(a[:,0].tolist())[:,0]

投稿2022/12/01 05:12

melian

総合スコア19618

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

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

bsdfan

2022/12/01 08:30

以前からですが、最近特に、コメントに回答しておいて、そのあと転記するというのが目立っています。 最初から回答に書いてもらえませんか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問