我有一个看起来像这样的文件(列ar坐标x,y,z和行代表一些对象):
1.02 0.63 0.0003
-1.34 0.61 0.0002
0.0 0.0 0.0
-1.91 0.25 0.87
-1.32 1.70 0.0
0.02 -1.12 -0.06
我想:
1)将第二行乘以3;
2)找到第2行中的新值与旧值n(我通过乘法获得的值)在相同列中的差异(即第二行的第一列与新值之间的差异,secons行的第二列新值和老等)
3)用新值替换第2行中的值;
4)将我得到的差异加到第4和第5行的值中。
所以输出应该如下:
1.02 0.63 0.0003
-4.02 1.83 0.0006
0.0 0.0 0.0
-4.59 1.47 0.8704
-4.00 2.92 0.0004
-2.66 0.10 -0.0596
到目前为止我得到的是:
import numpy as np
a=np.loadtxt('geometry.in')
C=s[1]
b=np.array((a)[C]) #read second line as array
x_old=b[0] #define coordinate x
y_old=b[1] #define coordinate y
z_old=b[2] #define coordinate z
C_new=b*3 #multiplying all line by 3
x=C_new[0] #defining new values in columns of the line
y=C_new[1]
z=C_new[2]
dx=x-x_old #the differene that I need to add to the first column of lines 4 and 5
dy=y-y_old
dz=z-z_old
我尝试了a.replace(x_old,x),但它没有用,我真的陷入了困境。
答案 0 :(得分:0)
如果你必须使用numpy,这是一个你可以使用的例子: 将整个数据加载为numpy数组“ao”
old2 = ao[1,:]
new2 = ao[1,:]*3
diff = new2 - old2
ao[1,:] = new2
ao[3:,:] = ao[3:,:] + diff