我正在尝试查找数字列表的最大值。
使用Python 2.7 IDLE,我尝试了以下操作:
import numpy
vectors = [[1, 2, 3], [4,5,6]]
numpyFiles = numpy.array(vectors)
maxRawFreq = numpyFiles.max()
它有效,并且 maxRawFreq = 6
我尝试使用非常相似的代码,使用更大的列表,并使用Pydev(Eclipse),但出现以下错误:
cannot perform reduce with flexible type
这是什么意思?(其他有关此错误的问题也给出了具体的解决方案...)。
我的代码:
import numpy
with open(inputFile) as f:
vectors = f.readlines()
vectorLength=len(vectors[0])#number of columns (word vector length)
numpyFiles = numpy.array(vectors)
#both these line gave me the same error:
#maxRawFreq = numpyFiles.max()
maxRawFreq = numpy.max(numpyFiles)
我的inputFile
包含数字,如下所示:
-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-1, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
+1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
In [81]: data=numpy.genfromtxt(inputFile, delimiter=',')[:, :-1]
In [82]: data
Out[82]:
array([[-1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[-1., 0., 0., 3., 0., 0., 1., 0., 0., 0., 0., 0., 1.,
0., 0., 0., 0., 0., 0., 0., 0., 4., 0., 0.],
[ 1., 0., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 6.]])
如果您仍然想自己解析它:
In [89]: with open(inputFile) as f:
...: d=[map(float, l.strip(',\n').split(',')) for l in f]
...: print d
...:
[[-1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 3.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0], [1.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句