我有一个 2D Python 数组,我想从中删除某些列,但在代码运行之前我不知道要删除多少列。
我想遍历原始数组中的列,如果任何一列中的行总和大约是某个值,我想删除整列。
我开始这样做的方式如下:
for i in range(original_number_of_columns)
if sum(original_array[:,i]) < certain_value:
new_array[:,new_index] = original_array[:,i]
new_index+=1
但后来我意识到我必须先定义 new_array,然后告诉 Python 它的大小。但是我事先不知道它的大小。
我之前绕过了这个问题,首先遍历列以找出我将丢失多少列,然后定义 new_array,最后运行上面的循环 - 但显然会有更有效的方法来做这些事情!
谢谢。
请您参考如下方法:
您可以使用以下内容:
import numpy as np
a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
)
print a.compress(a.sum(0) > 15, 1)
[[3]
[6]
[9]]
