我有一个小问题,但我不能找到一个简单的答案。我觉得这很愚蠢。
如何将标量与numpy.ndarray相乘?
import fileinput,sys,re,csv,scipy,os,numpy,pylab
from collections import defaultdict
from matplotlib.pyplot import *
from StringIO import StringIO
import numpy as num
a = open("testt.txt", "r")
b=[ raw.strip().split() for raw in a]
c=np.array(b)
d=c.transpose()
data=np.loadtxt("uu.txt",skiprows=1,dtype=None,delimiter='\t')
t1 = data[:,0]
t=(1/1000)*t1
s = data[:,9]
pylab.plot(t1, s)
pylab.xlabel('time (ms)')
pylab.ylabel('Zone height (mm)')
pylab.grid(True)
pylab.savefig('simple_plot')
pylab.show()
错误在行t =(1/1000)* t1中,这给了我错误: TypeError:*:'int'和'numpy.ndarray'的不支持的操作数类型。文本文件uu.txt是一个60 * 60矩阵,标题作为第一行。如果必要,我可以发布它。
谢谢
答案 0 :(得分:2)
这有点令人惊讶。如果data
是ndarray
,则t1=data[:,0]
也是ndarray
,您不应该有任何问题将其乘以int。
还是:
t1
的类型及其.shape
。t1
成为ndarray
,以防万一:t1=np.asarray(data[:,0])
(1/1000)
而是(1./1000)
而不是(1/1000)
因为整数除法而0
...