迭代numpy中的列时缺少行

时间:2015-06-30 23:23:34

标签: list

我正在尝试传递包含csvxy坐标的z fie。我正在使用Python的NumPy包执行此操作,如下面的代码所示:

enter code here#
!/usr/bin/python

from __future__ import print_function
import numpy as np
import pandas as pd

pdb_file=open('/home/josh/Documents/cordinates_all.csv')
x_new_file=open('/home/josh/Documents/x_new_cordinates.txt','w+')
y_new_file=open('/home/josh/Documents/y_new_cordinates.txt','w+')
z_new_file=open('/home/josh/Documents/z_new_cordinates.txt','w+')
test=open('/home/josh/Documents/test.txt','w+')

cordinates=np.genfromtxt(pdb_file,delimiter=",")



###slicing each "column" on the basis of X ,Y and Z cordinates
x=cordinates[:,][:,0]  
y=cordinates[:,][:,1]
z=cordinates[:,][:,2]


x_max=max(x)
x_min=min(x)

cx=(x_max-x_min)/2.0

y_max=max(y)
y_min=min(y)

cy=(y_max-y_min)/2.0

z_max=max(z)
z_min=min(z)

cz=(z_max-z_min)/2.0

###list of centre cordinates
cxyz=[cx,cy,cz]


####print(len(x),len(y),len(z))
#####print(np.isnan().any()) #check for missing values in the array
for count,elem in enumerate(y):
  print(count ,file=test) 
  print (((x[count])*1.05),file=x_new_file)

print(count,file=test)行只是为了检查我是否在计数变量中得到了值83366(我做了)。

坐标文件有83367行。使用len()我可以验证所有xyz列的行数是否相同。此外,使用isnan().any()我可以验证他们没有任何NaN或缺少值。

然而,当我遍历每一列以对每个值执行算术时,每列获得不同数量的元素,我不知道为什么。

我是NumPy软件包的新手,所以也许是我做错了什么?

请告知。

注意:我在canopy 15.04中的enthought Ubuntu环境下使用Python 2.7。

1 个答案:

答案 0 :(得分:0)

在文件对象上使用flush()解决了问题