🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
NumPy

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

Python

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

Q&A

2回答

732閲覧

numpyのarray

penhakennyori

総合スコア19

NumPy

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

Python

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

0グッド

0クリップ

投稿2021/02/06 15:28

以下でA[A>=B]がarray([1, 2, 3, 4])といった1次元の配列になるのが理解できません。

Aは1×5
Bも1×5
なので
A[A>=B]も1×5になると思っていたのですが、1次元配列の(4,)でした。
これが理解できませんでした。
ご指導よろしくお願いいたします。

import numpy as np A = np.array([[0, 1, 2, 3, 4]]) B = np.full((1, 5), 1) A[A>=B]

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

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

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

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

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

guest

回答2

0

それはnumpyの仕様です。
という答えでは納得がいかないでしょうね。

numpyを作っている人たちはこう考えたのでしょう。

ndarrayの要素の中で、ある条件を満たす要素だけを抜き出したいことがあるなあ。
そういう機能をつけようか。
でも、例えば(3,3)のshapeのndarrayで、1より大きい数を抜き出したら、条件を満たす要素の数は3個のときもあるし、7個のときもある。それを2次元の配列で返すのは無理だ。
使い方を考えたら1次元の配列を返すようにするしかないし、それで困らないよね。

というようなことで、そういう仕様になっているのでしょう。

投稿2021/02/06 22:06

ppaul

総合スコア24670

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

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

0

python

1import numpy as np 2 3A = np.array([[0, 1, 2, 3, 4]]) 4B = np.full((1, 5), 1) 5A[A>=B]

上記コードでA>=Bの結果はarray([[False, True, True, True, True]])となります。
ですのでA[A>=B]は配列AからA>=BでTrueの要素を抽出するのでarray([1, 2, 3, 4])が結果となります。

投稿2021/02/06 15:45

meg_

総合スコア10736

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問