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

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

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

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

Python

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

解決済

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

ruiti
ruiti

総合スコア39

NumPy

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

Python

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

1回答

0グッド

0クリップ

168閲覧

投稿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')

ご教示お願いします。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

回答1

1

ベストアンサー

※ コメントから転記

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

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

python

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

投稿2022/12/01 05:12

melian

総合スコア16186

ruiti😍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

bsdfan

2022/12/01 08:30

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

NumPy

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

Python

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