如何在python中生成NAN的二维数组?

时间:2019-03-27 12:10:32

标签: python numpy

我试图生成NAN的二维数组(80行20列),然后使用1,2或3的随机数填充它的第一列。

所以,这是我的代码:

import numpy.random as random
def getRowData():
    rowDt = np.eye(80,20)
    rowDt[:] = np.NaN
    rowDt[:,0] = random.choice([1,2,3],80) # Set the first column
    rowDt

但是当我运行代码时,它给了我None

print(getRowData())
None

我不认为我的函数的输出应该是None

那么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

看来,您的错误仅仅是因为您没有在函数中包含return语句。考虑改用:

def getRowData():
    a = np.full((80,20), np.nan)
    a[:,0] = np.random.choice([1,2,3],80)
    return a

输出

array([[ 3., nan, nan, ..., nan, nan, nan],
       [ 2., nan, nan, ..., nan, nan, nan],
       [ 1., nan, nan, ..., nan, nan, nan],
       ...,
       [ 2., nan, nan, ..., nan, nan, nan],
       [ 1., nan, nan, ..., nan, nan, nan],
       [ 1., nan, nan, ..., nan, nan, nan]])