numpy - 如何找出每行nd数组中特定元素的出现次数?
问题描述
[['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']]
这是我的数据集,我需要找出 nd 数组的每一行中的假预测计数或真实预测计数是否更大,并将结果存储在第 3 个数组中,NumPy 数组中是否有任何函数可用于此类操作,请对此提供帮助。
解决方案
假设您的数组(arr)包含fake或real,您可以运行:
moreReal = (arr == 'real').sum(axis=1) > arr.shape[1] / 2
细节:
(arr == 'real')
- 将您的数组转换为布尔数组(每个元素是否真实)。sum(axis=1)
- 按每一行生成总和。... > arr.shape[1] / 2
-实际元素的数量(特别是行)是否大于行大小的一半。
结果是:
array([False, True, True, True, False, False])
即第 1、2 和 3 行的真实条目比fake多。
编辑
如果您的起点是一个普通的 Pythonic 列表,请从创建Numpy数组开始:
arr = np.array([
['fake', 'fake', 'fake', 'fake', 'fake'],
...
])
然后,如果要生成bool数组,请运行:
isReal = arr == 'real'
推荐阅读
- python - 如何使用 Discord bot 从列表中删除角色?
- python - 无法在 Databricks 中导入上传的 Python 轮子
- c# - 通过 ajax 发布不发送数据
- ios - 与 UIActivityViewController 共享 PDF - 文件名
- javascript - 与服务器端渲染堆栈反应
- sql - SQLite:group_concat 似乎只拉第一行?
- java - 解锁时 lockHardwareCanvas 比 lockCanvas 慢
- java - 重定向登录和未登录用户
- r - 如何使用 R 中的 here 包解决路径问题?
- python - python 3.6中的attrgetter函数