我在下面有一段python代码,我试图根据平方根公式计算风:
import numpy as np
import sys
import math
data = np.loadtxt(array.csv, dtype='str',delimiter=',', skiprows=1, usecols=(0,1))
u = data[:,6].astype(float)
v = data[:,7].astype(float)
wind=np.array([])
for t in range(0,3):
winds=float(math.sqrt((float(u[t])*float(u[t]))+ (float(v[t])*float(v[t]))))
wind = np.append(wind,float(winds))
print "u is ",u[t]," v is ",v[t]," wind is ",float(winds)
csv文件如下所示:
0.9999,0.333
0.9566,0.13
0.9999,0.053
现在由于某种原因我尝试在上面的代码中计算值winds,我只得到1。
当我在代码本身中定义数组u和v时,如下所示:
u[0]=0.9999
u[1]=0.9566
u[2]=0.9999
v[0]=0.333
v[1]=0.13
v[2]=0.053
我获得了风的浮动值。 我如何调整上面的代码,以便在从csv文件派生u和v时,我可以在上面的代码中获得winds的浮动值?我最终将使用的csv文件总共有40 u和v值。
答案 0 :(得分:0)
您不需要在那里进行所有float
调用(math.sqrt
将始终返回浮点数!)如果您使用{{1},则当然不需要执行显式循环}}:
NumPy
但是对于numpy,你必须要小心你的数组是什么类型。如果你正在使用整数数组,那么numpy会将要保存的数组转换为数组的dtype。 (例如1.1 - > 1)