python populate elements in array -
i new python (previous matlab user).
i have array
y_pred = [none] * 128
test_idx
array of indeces
array([ 3, 4, 5, 19, 28, 30, 38, 39, 47, 49, 50, 51, 54, 64, 74, 81, 84, 85, 90, 91, 93, 97, 102, 103, 106, 107, 109, 111, 115, 121], dtype=int64)
i replace values of y_pred corresponding test_idx array results
array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0])
if try
y_pred[test_idx] = results
i error: typeerror: integer arrays 1 element can converted index
short version: replace y_pred = [none] * 128
y_pred = np.full(128, np.nan)
. else work once that.
long version:
the problem others have said, y_pred
list, not array. lists not support getting or setting multiple indexes @ time, need use numpy array that.
the simplest approach want use numpy array of called "sentinel" value, value indicates nothing written there. obvious choice value either 0
or nan
, depending on want results anything. nan
closets none
in numerical numpy array, 0
can make later calculations easier (for example nan != nan
, need use np.isnan
identify nan
values later).
to zeros, can replace y_pred = [none] * 128
y_pred = np.zeros(128)
. use nan
(or other value), can use y_pred = np.full(128, np.nan)
(there np.ones
don't think here). rest of code can used as-is.
Comments
Post a Comment