在python中计算浮点平方根

时间:2017-02-16 19:26:49

标签: python arrays csv math

我在下面有一段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值。

1 个答案:

答案 0 :(得分:0)

您不需要在那里进行所有float调用(math.sqrt将始终返回浮点数!)如果您使用{{1},则当然不需要执行显式循环}}:

NumPy

但是对于numpy,你必须要小心你的数组是什么类型。如果你正在使用整数数组,那么numpy会将要保存的数组转换为数组的dtype。 (例如1.1 - > 1)