Lis*_*hew 3 python arrays numpy
我有一个numpy array 'arr'是的shape (1756020, 28, 28, 4).基本上'arr'有1756020小阵列shape (28,28,4).出的1756020阵列967210是"全零"和788810具有所有的非零值.我想删除所有967210'全零'小数组.我使用条件写了一个if else循环arr[i]==0.any()但是需要花费很多时间.有没有更好的方法呢?
向量化逻辑的一种方法是使用numpy.any元组参数来axis包含未经测试的维度.
# set up 4d array of ones
A = np.ones((5, 3, 3, 4))
# make second of shape (3, 3, 4) = 0
A[1] = 0 # or A[1, ...] = 0; or A[1, :, :, :] = 0
# find out which are non-zero
res = np.any(A, axis=(1, 2, 3))
print(res)
[True False True True True]
Run Code Online (Sandbox Code Playgroud)
此功能在numpyv0.17以上版本中可用.根据文档:
axis:无或int或int的元组,可选
如果这是一个整数元组,则在多个轴上执行减少,而不是像以前那样对单个轴或所有轴执行减少.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |