使用 for 循环构建 Numpy 数组

Building up a Numpy Array with a for loop

我已经 运行 遇到过很多场景,在这些场景中,我必须遍历 CSV 或其他数据文件,找到一些符合一些条件的数据,并将这些数据放入一个数组中。非常标准和常见的 Numpy 行为。

我的一般方法是设置一个列表,在 for 循环中查找值,附加到该列表,然后在最后转换回数组。

stats = []

for i in range(len(headers)):
    
    max_value = np.max(data[:, i])

    stats.append(max_value)

all_stats = np.array(stats, dtype = float)

这看起来有点臃肿,而且当我还想为不同的条件插入不同的值时不够稳健。在 for 循环中构建值数组的最佳方法是什么,其中结果数组的大小事先是未知的?

谢谢!

根据您的代码,您可能拥有:

all_stats = np.max( data[:,:len(headers)], axis=1)

以矢量化(更快)的方式为您提供相同的结果。