【发布时间】:2013-08-04 00:15:43
【问题描述】:
我在 python 中使用 Numpy 读取 csv 文件:
import numpy as np
import csv
from StringIO import StringIO
with open ('1250_12.csv','rb') as csvfile:
data = np.genfromtxt(csvfile, dtype = None, delimiter = ',')
np.set_printoptions(threshold='nan'
打印出以下内容:
[['x1' 'y1' 'z1' 'x2' 'y2' 'z2' 'cost']
['5720.44' '3070.94' '2642.19' '5797.82' '3061.01' '2576.29' '102.12']
['5720.44' '3070.94' '2642.19' '5809.75' '3023.6' '2597.81' '110.4']
['5861.54' '3029.08' '2742.36' '5981.23' '3021.52' '2720.47' '121.92']
['5861.54' '3029.08' '2742.36' '5955.36' '3012.95' '2686.28' '110.49']
所以第一列属于'x1',第二列属于'x2'......等等。假设 x1,y1,z1 是一个以数组表示的向量,下面的点表示该值。如您所见,每个 x1、y1 等都有多个点。现在我想将这些点相加,使其成为使用迭代器的向量的总和。如何使用迭代器对所有行求和?
像这样:
import numpy
a=numpy.array([0,1,2])
b=numpy.array([3,4,5])
a+b
array([3, 5, 7])
但这只是 2 个数组,如果有数百个,那么您需要一个迭代器而不是手动设置数组吗?
【问题讨论】:
-
预期输出是什么?
-
粘贴的代码中有些东西被截断了。
-
让我们说 a = [x1,y1,z1] 和 b = [x2,y2,z2] 总和是 a+b 但我想使用迭代器,这样我就可以处理所有行。
-
为什么要使用迭代器?这听起来像是围绕
np.sum或ndarray的sum方法构建的工作。显式迭代往往会破坏 numpy 的优势。 -
我不想像 x1+y1+z1 那样对列中的点求和我试图总结所有 x1 点和所有 y1 点......等等