我的问题可能以前已经问过了,而且我找到了解决它的多种方法,但似乎没有一个方法可以解决我的问题。如何从一组数据中创建一个数组/矩阵
数据表我想读如下所示:
-6 -6 -3.74767E-003 -3.74767E-003 5.30000E-003 1.87773E+001 1.87008E+001 1.87711E+001 1.86925E+001 -0.039128%/n
-6 -5 -3.74767E-003 -3.12305E-003 4.87837E-003 1.87773E+001 1.55840E+001 1.87728E+001 1.55787E+001 -0.028419%/n
(注意,在最后一行我责备它是造成问题的%)。我试图分裂,但它总是归结到'list' object has no attribute 'split'
错误消息的变体。
我想创建以下面的方式以矩阵numpy的数组:
(x1 y1 0 0
0 0 x1 y1
:
:
:
xn yn 0 0
0 0 xn yn)
我附加了一些我试图这样做的代码:
import math
import numpy as np
import matplotlib.pyplot as plt
def main():
d=reader()
XY_real=projected(d)
matrix=matrix_f(d)
def reader():
#loads the values into d:
d=np.genfromtxt("Eris-106-Cam1.txt",delimiter='',dtype=float)
#print(d[0][0])
return d
def projected(d):
#Sets XY_real as value.
Dummy_array = np.asarray(d)
#Load x/y values:
i=1
X_real_array0=np.array([Dummy_array[0][7]])
Y_real_array0=np.array([Dummy_array[0][8]])
XY_real_array=np.empty([1,1])
while i<169:
x_real=float(Dummy_array[i][7])
y_real=float(Dummy_array[i][8])
#XY Array:
X_real=np.array([x_real])
XY_real_array=np.append([[XY_real_array]],[[X_real]])
Y_real=np.array([y_real])
XY_real_array=np.append([[XY_real_array]],[[Y_real]])
i=i+1
print type(XY_real_array)
def matrix_f(d):
Dummy_array = np.asarray(d)
x0=float(Dummy_array[0][2])
y0=float(Dummy_array[0][3])
matrix=np.array([[x0,y0,0,0],[0,0,x0,y0]])
i=0
while i < 169:
x=float(Dummy_array[i][2])
y=float(Dummy_array[i][3])
matrix0=np.array([[x,y,0,0],[0,0,x,y]])
matrix=np.append([[matrix]],[[matrix0]])
i=i+1
print(matrix)
main()
这将产生所需要的矩阵:
[-0.00374767 -0.00374767 0. ..., 0. 0.00374767
0.00374767]
是:[x_i y_i 0 0 ... 0 0 x_i y_i]
现在,如果我试图打电话与X_I之一:
print(matrix[0][0])
*File "/home/sebo/Documents/reader.py", line 72, in matrix_f
print(matrix[0][0])
IndexError: invalid index to scalar variable.*
- >这正好当我试图找到一个伪逆上。我假设问题来自我加载数字的方式,因为当我打印矩阵时,您可以看到这些值不会以逗号分隔!这是因为我认为它们存储在数组中(?)我可能是完全的,但请帮助我:D
可能你也许改写这更好的,对我来说,似乎有点不清楚你想要做什么(为什么你想有一个二维数组) – Guillaume
您好谢谢,我试图让x和y的值来自Zemax文件。 Zemax文件看起来像我发布的。实际的问题是,我从来没有得到的数字,存储在我的数据文件作为浮动,它总是返回列表(只有在它的数字,但我试着去使用被接受的numpy的程序,他们所需要的纯数) – Sebastiano1991
你好,我彻底改变了我的问题的布局,我很抱歉,如果我和你全乱,但因为它是在我 – Sebastiano1991