[['fake' 'fake' 'fake' 'fake' 'fake']
['real' 'real' 'real' 'real' 'real']
['real' 'real' 'fake' 'fake' 'real']
...
['real' 'real' 'real' 'real' 'real']
['fake' 'fake' 'fake' 'fake' 'fake']
['fake' 'fake' 'fake' 'real' 'fake']]
这是我的数据集,我需要找出第二个数组的每一行中的假预测计数还是真预测计数更大,并将结果存储在第三个数组中,NumPy数组中是否有任何函数可用于此类操作,请对此提供帮助。
假设您的数据具有维度(n,2)
,您可以执行以下操作:
import numpy as np
# Example array
a = np.array([['fake', 'fake', 'fake', 'fake', 'fake'],
['real', 'real' ,'real' ,'real' ,'real'],
['real', 'real', 'fake', 'fake' ,'real']])
# For n even this will bias into the 'real' category
print(np.sum((a == 'fake'), axis = 1) > a.shape[1] // 2)
假设您的数组(arr(包含fake或real,你可以运行:
moreReal = (arr == 'real').sum(axis=1) > arr.shape[1] / 2
详细信息:
(arr == 'real')
-将数组转换为bool数组(无论每个元素都是real(sum(axis=1)
-按每行生成和... > arr.shape[1] / 2
-实际元素的数量(特定行(大于行大小的一半
结果是:
array([False, True, True, True, False, False])
即,第1、2和3行的real条目多于fake。
编辑
如果你的起点是一个简单的Python列表,那么从创建Numpy数组:
arr = np.array([
['fake', 'fake', 'fake', 'fake', 'fake'],
...
])
然后,如果要生成bool数组,请运行:
isReal = arr == 'real'