yu = np.array([np.nan, np.nan, np.nan, np.nan, np.nan,])
rte = np.array([1,2,3,4,5])
yu[0] = rte[0]
yu # array([ 1., nan, nan, nan, nan])
还..
[yu[i] = rte[i] for i in range(len(rte))]
SyntaxError:语法无效
具体来说,我正在尝试用相同长度的其他数组填充数组中的nan:
[pred[first_c_rowNA, 0::][0::, wNA[0]][i] = output[i] for i in np.arange(len(output))]
SyntaxError:语法无效
pred[first_c_rowNA, 0::][0::, wNA[0]] # array([ nan, nan, nan, ..., nan, nan, nan])
和
output # array([ 0., 0., 0., ..., 0., 0., 0.]) # not all are zeros
由于
答案 0 :(得分:3)
为什么不能简单地说:
>>> import numpy as np
>>> rte = np.array([1,2,3,4,5])
>>> yu = np.array([np.nan, np.nan, np.nan, np.nan, np.nan,])
>>> yu[:] = rte
>>> yu
array([ 1., 2., 3., 4., 5.])
或者如果您需要纳米面膜:
yu[np.isnan(yu)] = values
例如:
>>> yu
array([ 0.20087116, nan, 0.71742786, 0.05037165, 0.25646742,
nan, 0.27702335, nan, nan, 0.62272575])
>>> yu[np.isnan(yu)] = np.random.rand(4)
>>> yu
array([ 0.20087116, 0.6701011 , 0.71742786, 0.05037165, 0.25646742,
0.63462273, 0.27702335, 0.01248758, 0.61178318, 0.62272575])
答案 1 :(得分:1)
列表理解不会分配任何内容,它会创建一个新列表,然后您可以使用它来填充numpy数组。但大多数情况下,使用numpy
数组时最好使用切片:
>>> import numpy as np
>>> yu = np.array([np.nan, np.nan, np.nan, np.nan, np.nan,])
>>> rte = np.array([1,2,3,4,5])
>>> yu[:] = rte
>>> yu
array([ 1., 2., 3., 4., 5.])
答案 2 :(得分:0)
为什么不使用:
for i in range(len(rte)):
yu[i] = rte[i]