我正在尝试创建一个numpy数组来保存不同的类型:
na_csv_output = np.zeros((len(ldt_timestamps),1),dtype=('i4,i4,i4,a10,a10,i4'))
这个问题是所有6个值都存储为单个条目,而我希望它是6个列,以便它们可以正确地写为CSV。有什么办法可以通过使用numpy数组来完成吗? (或其他类型的列表)
P.S。
即使我尝试使用
将我从初始尝试获得的值写入文件np.savetxt('eventResults.csv', na_csv_output, delimiter=",")
它说
TypeError: float argument required, not numpy.string_
这是另一个问题。
答案 0 :(得分:2)
要访问每列,请使用na_csv_output['f0']
或f1
f2
等,其中f
代表字段。
要将其保存到文件中,请首先将其设为1D数组
na_csv_output = np.zeros((len(ldt_timestamps)),dtype=('i4,i4,i4,a10,a10,i4'))
要保存它,你可以选择这样的东西,例如
np.savetxt('eventResults.csv', na_csv_output, fmt='%f, %f, %f, string= %s %s, last number = %f', delimiter=",")
答案 1 :(得分:0)
我会使用pandas。它使csv操作变得非常简单。
import pandas as pd
# omit second argument to np.zeros to get 1-d data
na_csv_output = np.zeros((len(ldt_timestamps),),dtype=('i4,i4,i4,a10,a10,i4'))
df = pd.DataFrame(na_csv_output)
df.to_csv('eventResults.csv')
答案 2 :(得分:0)
with open('eventResults.csv','w') as f:
for x in xx:
np.savetxt(f,x,fmt='%f, %f, %f, %r, %r, %f')
# np.savetxt(f,x,fmt='%r',delimiter=', ')