将多维numpy数组导入CSV文件

时间:2016-05-30 07:22:11

标签: python arrays csv numpy

我有一个2D数组,我想写入csv文件。我使用以下代码来执行此操作。我的数组已经是 float32 dtype 数组。然后我使用.asarray()函数将数组转换为numpy。现在我想将它写入csv文件并使用以下代码:

activaiton_array = np.asarray(activation_list)
np.savetxt("/home/workstation/activation_data_file_1.csv", activaiton_array,fmt='%f', delimiter=",",)

但我收到以下错误:

np.savetxt("/home/workstation/activation_data_file_1.csv", activaiton_array,fmt='%f', delimiter=",",)

File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1073, in savetxt
fh.write(asbytes(format % tuple(row) + newline))

TypeError: float argument required, not numpy.ndarray

2 个答案:

答案 0 :(得分:0)

如果activaiton_array是2d浮点数组,则savetxt遍历行(第一维)并执行

fh.write(asbytes(format % tuple(row) + newline))

这期望row是1d浮点数组; format源自您的fmt规范。实际上它正在做

'%f, %f, %f'%(1.23, 23.23, 1.0)

错误表示row不是1d或其元素不是数字。

我必须运行一些测试来查看TypeError: float argument required, not numpy.ndarray是否产生row是否为2d(即您的数组是否为3d),或row是否为activaiton_array.dtype包含数组的dtype数组。

您需要向我们展示activaiton_array.shape@Bean public SolrClient solrClient() { CloudSolrClient client = new CloudSolrClient(env.getRequiredProperty("spring.data.solr.zk-host")); client.setDefaultCollection("participant_"+env.getActiveProfiles()[0]); return client; }

答案 1 :(得分:-1)

尝试:

np.savetxt("/home/workstation/activation_data_file_1.csv",activaiton_array.flatten())