1
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

ありがとう

4

3 に答える 3

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.])

または、nan マスクが必要な場合:

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])
于 2013-10-27T14:38:37.613 に答える
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.])
于 2013-10-27T14:38:35.080 に答える
0

使用しない理由:

for i in range(len(rte)):
    yu[i] = rte[i]
于 2013-10-27T15:01:16.687 に答える