我有一个形状为(1179648, 909)
的数组。
问题是某些行仅用0
填充。我正在检查以下内容:
for i in range(spectra1Only.shape[0]):
for j in range(spectra1Only.shape[1]):
if spectra1Only[i,j] == 0:
我现在想删除[i]
的整个行,如果出现任何0
只会得到较少量的仅所需数据。
我的问题是:这样做的最佳方法是什么? Remove
? Del
? numpy.delete
?还是其他方法?
答案 0 :(得分:1)
您可以对np.any
和axis=1
使用布尔索引:
spectra1Only = spectra1Only[~(spectra1Only == 0).any(1)]
这是一个示范:
A = np.random.randint(0, 9, (5, 5))
print(A)
[[5 0 3 3 7]
[3 5 2 4 7]
[6 8 8 1 6]
[7 7 8 1 5]
[8 4 3 0 3]]
print(A[~(A == 0).any(1)])
[[3 5 2 4 7]
[6 8 8 1 6]
[7 7 8 1 5]]