用for循环构建Numpy数组



我遇到了很多场景,我必须遍历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)

以矢量化(更快)的方式给出相同的结果。

最新更新