从CSV文件读取数据时对数组的数值运算

阿文德·萨斯特里(Arvind Sastry)

我正在尝试从CSV文件读取一些值的同时,对一些数组进行一些数值运算。

我有一个固定的接收器坐标,并且我从跟踪太阳的CSV文件中读取了定日镜的坐标。

接收者的坐标:

# co-ordinates of Receiver
XT = 0  # X co-ordinate of Receiver
YT = 0   # Y co-ordinate of Receiver
ZT = 207.724  # Z co-ordinate of Receiver, this is the height of tower 
A = np.array(([XT],[YT],[ZT]))
print(A," are the co-ordinates of the target i.e. the receiver")

十个定日镜的坐标:我从CSV文件中读取了以下数据以及以下数据:

#X,Y,Z
#-1269.56,-1359.2,5.7
#1521.28,-68.0507,5.7
#-13.6163,1220.79,5.7
#-1388.76,547.708,5.7
#1551.75,-82.2342,5.7
#405.92,-1853.83,5.7
#1473.43,-881.703,5.7
#1291.73,478.988,5.7
#539.027,1095.43,5.7
#-1648.13,-73.7251,5.7

我读取了CSV的坐标,如下所示:

import csv
# Reading data from csv file
with open('Heliostat Field Layout Large heliostat.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
X = []
Y = []
Z = []
for row in readCSV:
    X_coordinates = row[0]
    Y_coordinates = row[1]
    Z_coordinates = row[2]
    X.append(X_coordinates)
    Y.append(Y_coordinates)
    Z.append(Z_coordinates)
Xcoordinate = [float(X[c]) for c in range(1,len(X))]
Ycoordinate=[float(Y[c]) for c in range(1,len(Y))]
Zcoordinate=[float(Z[c]) for c in range(1,len(Z))]

现在,当我尝试打印十个定日镜的坐标时,我得到了三个大数组,其中所有Xcoordinate,Ycoordinate和Zcoordinate分组为一个,而不是十个不同的输出。

 [[[-1269.56    1521.28     -13.6163 -1388.76    1551.75     405.92    1473.43
1291.73     539.027  -1648.13  ]]

 [[-1359.2      -68.0507  1220.79     547.708    -82.2342 -1853.83
-881.703    478.988   1095.43     -73.7251]]

 [[    5.7        5.7        5.7        5.7        5.7        5.7        5.7
   5.7        5.7        5.7   ]]]  are the co-ordinates of the heliostats

我用了:

B = np.array(([Xcoordinate],[Ycoordinate],[Zcoordinate]))
print(B," are the co-ordinates of the heliostats")

怎么了

此外,我想有一个数组,我像B-A那样使用:

#T1 = matrix(A)- matrix(B)
#print(T1," is the target vector for heliostat 1, T1")

我应该如何对数组A和B进行数值运算?我在这里尝试了矩阵运算。错了吗

伯特兰·加赞尼翁

您的密码是正确的

以下输出是显示numpy数组的方式。

[[-1359.2 -68.0507 1220.79 547.708 -82.2342 -1853.83 -881.703 478.988 1095.43 -73.7251]]

尽管存在将值卡在一起的错觉,但它们在数组中完全不同。您可以使用访问单个值

print(B[1, 0, 0])    # print Y[0]

您要执行的数组A和B的减法将起作用

T1 = np.matrix(A)- np.matrix(B)
print(T1," is the target vector for heliostat 1, T1")

我可以提出两个建议吗?

  • 您可以使用loadtxt函数numpy读取文本文件中的矩阵形式的numpy数组:

    your_file = 'Heliostat Field Layout Large heliostat.csv'
    B = np.loadtxt(your_file, delimiter=',', skiprows=1)
    

    结果将是(3,10)的numpy数组。

  • 您可以直接在numpy数组上执行宽范围操作(因此您无需将其转换为矩阵)。您只需要注意尺寸。

    在原始脚本中,您只需要编写:

    T1 = A - B
    

    如果按照建议将数组B与loadtxt结合使用,则将获得(10,3)数组,而A是(3,1)数组。数组B必须首先以(3,10)数组进行整形:

    B = B.reshape((3, 10))
    T1 = A - B
    

编辑:计算T1的每个3D向量的范数

norm_T1 = np.sqrt( np.sum( np.array(T1)**2, axis=0 ) )

请注意,在您的代码中T1是矩阵,因此T1 ** 2是矩阵乘积。为了计算T1的每个向量v的sqrt(v [0] ** 2 + v [1] ** 2 + v [2] ** 2),我首先将其转换为numpy数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从CSV文件读取数据时对数组的数值运算

来自分类Dev

从CSV文件读取数据时如何获取对特定数组字段的访问权限

来自分类Dev

使用Javascript将CSV文件读取到键值对数组中

来自分类Dev

从CSV文件读取数据

来自分类Dev

读取CSV文件时如何将字符串值转换为整数值?

来自分类Dev

从CSV文件读取时如何更改列的数据类型

来自分类Dev

读取文件时将数据保存到指针数组

来自分类Dev

使用运算符>>读取.CSV文件

来自分类Dev

读取文件时添加运算符

来自分类Dev

写入CSV文件时读取

来自分类Dev

读取csv文件时出错

来自分类Dev

从CSV文件读取行数据

来自分类Dev

更改从 *.csv 文件读取的数据

来自分类Dev

从文件读取数据到数组

来自分类Dev

从 CSV 文件中读取包含在双引号中的数值

来自分类Dev

从文件中读取数值并将其放置为数组

来自分类Dev

从 csv 文件读取数据并存储到数组中,我的文件正确打开但文件读取不正确

来自分类Dev

读取csv到数组,对数组执行线性回归并根据梯度在Python中写入csv

来自分类Dev

读取csv数据到数组并执行操作

来自分类Dev

从 .csv 文件读取到双数组

来自分类Dev

NodeJS - 读取 CSV 文件到数组返回 []

来自分类Dev

使用单引号时,“ DB2逻辑运算符对数值”列给出不同的结果

来自分类Dev

使用单引号时,“ DB2逻辑运算符对数值”列给出不同的结果

来自分类Dev

在AngularJS中对数值数组进行排序

来自分类Dev

按数值对数组进行排序

来自分类Dev

如何将csv文件数据读取到数组中?

来自分类Dev

从 .csv 文件中读取数据以附加到 c 中的二维数组中

来自分类Dev

逐列解析CSV文件时比较数值的问题

来自分类Dev

当结尾处的行不属于.csv数据时,Univocity解析器如何正确读取.csv文件的数据?

Related 相关文章

  1. 1

    从CSV文件读取数据时对数组的数值运算

  2. 2

    从CSV文件读取数据时如何获取对特定数组字段的访问权限

  3. 3

    使用Javascript将CSV文件读取到键值对数组中

  4. 4

    从CSV文件读取数据

  5. 5

    读取CSV文件时如何将字符串值转换为整数值?

  6. 6

    从CSV文件读取时如何更改列的数据类型

  7. 7

    读取文件时将数据保存到指针数组

  8. 8

    使用运算符>>读取.CSV文件

  9. 9

    读取文件时添加运算符

  10. 10

    写入CSV文件时读取

  11. 11

    读取csv文件时出错

  12. 12

    从CSV文件读取行数据

  13. 13

    更改从 *.csv 文件读取的数据

  14. 14

    从文件读取数据到数组

  15. 15

    从 CSV 文件中读取包含在双引号中的数值

  16. 16

    从文件中读取数值并将其放置为数组

  17. 17

    从 csv 文件读取数据并存储到数组中,我的文件正确打开但文件读取不正确

  18. 18

    读取csv到数组,对数组执行线性回归并根据梯度在Python中写入csv

  19. 19

    读取csv数据到数组并执行操作

  20. 20

    从 .csv 文件读取到双数组

  21. 21

    NodeJS - 读取 CSV 文件到数组返回 []

  22. 22

    使用单引号时,“ DB2逻辑运算符对数值”列给出不同的结果

  23. 23

    使用单引号时,“ DB2逻辑运算符对数值”列给出不同的结果

  24. 24

    在AngularJS中对数值数组进行排序

  25. 25

    按数值对数组进行排序

  26. 26

    如何将csv文件数据读取到数组中?

  27. 27

    从 .csv 文件中读取数据以附加到 c 中的二维数组中

  28. 28

    逐列解析CSV文件时比较数值的问题

  29. 29

    当结尾处的行不属于.csv数据时,Univocity解析器如何正确读取.csv文件的数据?

热门标签

归档