如果转换为NumPy数组,我有一个Python列表将具有以下维度:(5,47151,10)
np.array(y_pred_list).shape
# returns (5, 47151, 10)
len(y_pred_list)
# returns 5
我想浏览每个元素并替换以下元素:
有什么想法吗?
答案 0 :(得分:1)
如果元素为> = 0.5,则创建值为True的数组,否则为False:
new_array = y_pred_list >= 0.5
使用Numpy数组的.astype()方法使所有True元素1和所有False元素0:
new_array.astype(int)
答案 1 :(得分:0)
ibredeson的回答是你的具体案例。当你有一个数组a并且想要构造一个只有两个值的相同形状的数组b时,根据a上的条件,考虑使用np.where
(参见the doc here):
import numpy as np
a = np.array([0, 1, 0.3, 0.5])
b = np.where(a > 0.5, 2, 7) # 2 and 7 are the values you want to see in b, whether the
# corresponding element in a is lesser than 0.5 or not.
>>> b
array([7, 2, 7, 7])
答案 2 :(得分:-2)
arr=np.array(y_pred_list) #list to narray
arr[arr<0.5]=0 # arr<0.5 is a mask narray
arr[arr>=0.5]=1
y_pred_list=arr.tolist() # narray to list