将具有0值的2D数组导出到txt / csv文件中

时间:2013-12-05 17:14:11

标签: python arrays numpy

我有一个100x100阵列,我想将其导出为txt或csv文件。数组的元素都是0和一些其他整数。使用以下代码时,将正确导出整数,但使用giganormous exponents(1.98E-258)将随机数替换为零。有没有人知道避免这种行为的方法?

我使用的代码如下:

import numpy as np
my_array=np.ndarray(shape=(100,100))                                 
my_array[[],[]]=0  #WRONG
np.savetxt("my_file.csv", my_array, delimiter=",")

2 个答案:

答案 0 :(得分:4)

这实际上是一个非常小的数字...但你需要做的是告诉numpy数组将填充整数,而不是浮点数:

#or np.int32, np.int64, np.uint8 ... depending on desired range.
my_array=np.zeros((100,100), dtype=int)

虽然我们正在使用它,但我使用np.zeros给你一个初始化为零的数组,因为这似乎是你想要的。一般来说,np.ndarray用于子类化numpy数组 - 自己调用构造函数并不是很惯用。

答案 1 :(得分:2)

问题在于

my_array[[],[]]=0

替换为

my_array[:,:]=0

问题是你从来没有真正初始化数组,因此一切都是随机的,包括指数。上述修正将一切设为零。