2017-06-18 8 views
3

私は2次元の配列を持ち、行ごとに値を数えたいと思っています。私は軸の値、軸= 1を割り当てても、メソッドはまだ単一の整数を返します。numpy.count_nonzero(arr)が割り当てられた軸の値で機能しないのはなぜですか?

x = rng.randint(10, size=(6,3)) 

x 
Out[120]: 
array([[3, 3, 8], 
     [8, 8, 2], 
     [3, 2, 0], 
     [8, 8, 3], 
     [8, 2, 8], 
     [4, 3, 0]]) 

np.count_nonzero(x) 
Out[121]: 16 

np.count_nonzero(x, axis=1) 
Out[122]: 16 

例をドキュメントページから直接コピーして、同じ結果が得られました。

np.count_nonzero([[0,1,7,0,0],[3,0,0,2,19]], axis=1) 
Out[123]: 5 

はどこに期待:

array([2, 3]) 

私は、Python 3.6

行全体からカウントの配列を返すからメソッドを維持するかもしれないものの任意のアイデアを使用していますか? V1.12ドキュメントから

+0

私のために働きます。何_numpy_バージョンを使用していますか? – DSM

+0

私は '1.11.3'を使用しています。私は更新しようとします。 –

答えて

1

axis : int or tuple, optional 
    Axis or tuple of axes along which to count non-zeros. 
    Default is None, meaning that non-zeros will be counted 
    along a flattened version of ``a``. 

    .. versionadded:: 1.12.0 

だから、この軸パラメータは新しめです。

count_nonzeroは、結果を返すために割り当てる必要がある配列のサイズを決定するためにnonzerowhere)によって使用されます。そのためには、axisパラメータは必要ありません。それは速くてシンプルである必要があります。開発者が主な正当化としてその使用を見た場合、なぜaxisが遅れて追加されたのかを説明することができます。

+0

私が見るためにそこにあります。私が捕らえたはずのことを指摘してくれてありがとう。 –

関連する問題