python - 如果函数使用未来数组
问题描述
我有一个 np.array 里面有多个数组。
bool_window[0] = (256,1)
在这种情况下,我有 40 个 (256,1) 数组。数组中的数据是 0 或 1,我想使用此代码检查下一个数组是否比前一个数组多 1。
for i in bool_window:
if (np.count_nonzero(i) > 0) and (np.count_nonzero(i) < 256) and np.count_nonzero(i) < np.count_nonzero(i+1):
print('In this array there are ', np.count_nonzero(i), ' events')
问题是 np.count_nonzero(i+1) 无法正常工作。有没有办法说下一个数组需要比实际数组大?
0 256
0 256
0 256
50 256
178 256
174 256
46 256
0 256
0 256
0 256
这是我使用此代码得到的输出。
for i in bool_window:
if np.count_nonzero(i) < np.count_nonzero(i+1):
print(np.count_nonzero(i), np.count_nonzero(i+1))
解决方案
由于您的数据仅包含1
并且0
您可以使用np.sum
:
bool_window = np.stack(bool_window) # In case you have 40 arrays of shape (256, 1).
n_ones = bool_window.sum(axis=(-2, -1))
has_more_ones = n_ones[1:] > n_ones[:-1]
推荐阅读
- google-oauth - Google Oauth2 设置:同意屏幕必填字段和验证
- flask - 处理 Flask WTF 中的唯一字段
- excel - 计算要在不缩放的情况下打印的列
- angular - 如何使用 Typescript 源代码调试/步入 npm 包?
- python - 将 www.test.com 清理到 test.com
- java - 将 json 文件包含并读取到生成的 maven .jar 文件中
- google-app-engine - 在 sdk 中工作后,getUserMedia() 音频在静态网站中失败
- java - 档案管理
- .net-core - .net core 3.1 无法分配请求的地址
- php - PHP mysqli_num_rows() 函数不起作用