使用 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)
以矢量化(更快)的方式为您提供相同的结果。
我已经 运行 遇到过很多场景,在这些场景中,我必须遍历 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)
以矢量化(更快)的方式为您提供相同的结果。