Python Numpy非零

2024-04-19 06:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我得到了一个numpy的shape数组(31641600,2),其中有一些零值。在

我们把数组称为X

正在做:

print len(X)
>>> 31641600

但接下来要做的是:

^{pr2}$

不明白为什么第二个更大。在Documentation上,它说应用上述方法应该只返回非零值,因此X的长度应该更小。在

有什么想法吗?谢谢您。在


Tags: 方法numpylendocumentation数组printshapepr2
1条回答
网友
1楼 · 发布于 2024-04-19 06:10:28

这可能是因为len(X)只返回X沿第一个轴的长度。当你这么做的时候

X = X[np.nonzero(X)]

你得到了一个1D数组,所以如果你在X中有少于50%的零,len(X)将增加。在

考虑:

^{pr2}$

这是因为X[np.nonzero(X)]是一个43人的数组:

In [7]: X[np.nonzero(X)].shape
Out[7]: (43,)

根据评论进行更新:如果您确实想要第一个元素非零的所有对,可以执行以下操作:

X = X[ X[:, 0] != 0 ]

相关问题 更多 >