bugfix> python > 投稿

次のコードスニペットを検討してください。

import numpy as np
arr = np.array([True, True, False, True, False])
a = np.nonzero(arr)
b = np.nonzero(arr)[0]

a の出力 :

(array([0, 1, 3], dtype=int64),)

b の出力

[0 1 3]

質問:の出力とは異なりa、なぜ[0]がb 配列だけを含めて、dtypeを含めませんか?

回答 1 件
  • tuple を含むほとんどのpythonコンテナー 、 repr を使用   str(a) を呼び出すかどうかに関係なく、それらの要素を表示する  または repr(a)np.nonzero の結果   tuple です これは、最後の閉じ括弧の直前のコンマに気づくと視覚的に確認できます。

    ndarray   str で表示されます 、データを通じて明確に表示できるdtypeは、明示的なdtypeラベルを取得しません。これには np.int_ が含まれます 、 np.float_  (それは常に 小数点が続く場合でも小数点を取得します)、そして np.bool_b 以来  タプルから抽出され、標準のdtypeがあり、簡略化された形式で表示できます。

    a に表示されるのと同様の出力形式を取得できます。   repr(b) を行うことによって  代わりに。

あなたの答え