我已经Python列表如果转换为NumPy的阵列将具有以下尺寸:(5,47151,10)在三维Python列表更换元素
np.array(y_pred_list).shape
# returns (5, 47151, 10)
len(y_pred_list)
# returns 5
我想去通过每一个元件和更换元件,其中:
- 如果元素> = 0.5然后1.
- 如果元素< 0.5然后按0
有什么想法?
我已经Python列表如果转换为NumPy的阵列将具有以下尺寸:(5,47151,10)在三维Python列表更换元素
np.array(y_pred_list).shape
# returns (5, 47151, 10)
len(y_pred_list)
# returns 5
我想去通过每一个元件和更换元件,其中:
有什么想法?
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
要创建具有一个值的数组真如果元素是> = 0.5,否则为False:
new_array = y_pred_list >= 0.5
使用.astype()方法用于numpy的阵列,以使所有的真元件1和所有假元素0:
new_array.astype(int)
ibredeson的答案就在您的特定情况下的路要走。当你有阵列的并希望构造一个数组b其中只有两个值,这取决于在的状态下的相同的形状,可以考虑使用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])