python - 如果我想在遍历数组时比较数组中的元素怎么办
问题描述
我想在遍历数组时比较元素。
这是编译器所说的:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我知道如何.any()
并且all()
用于检查元素是否在数组中,并且它们返回true
or false
。但我不知道如何修改这段代码:
a = np.arange(11, 36)
a = a.reshape(5, 5)
for ele in a:
if ele >= 20:
print(ele)
解决方案
你正在重塑你的 numpy 数组。
a = np.arange(11, 36)
print(a)
[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35]
a = a.reshape(5, 5)
print(a)
[[11 12 13 14 15]
[16 17 18 19 20]
[21 22 23 24 25]
[26 27 28 29 30]
[31 32 33 34 35]]
arange 给出一维数组。调用 reshape(5,5) 会为您提供一个二维 numpy 数组,因此在 'a' 上循环每次都会为您提供一个数组。你可以通过循环两次来做到这一点
for row in a:
for ele in row:
if ele >= 20:
print(ele)
您可以注意到,如果您不调用 reshape,那么您的原始循环将正常工作。
推荐阅读
- html - Google Doc在页面右侧嵌入宽度不保持不变
- python - Bash超时循环:命令超时而不启动
- tensorflow - 如何将先前时间步的知识添加到 RNN 中?
- mysql - SQL查询中的缩短语句
- java - G1GC 导致内存逐渐增长,full GC 将其降低
- ios - Flutter 应用没有 Runner/Runner
- javascript - 这个 ES6 重构准确吗?
- matrix-synapse - 矩阵突触数据库中每个用户的房间
- r - 对于循环存储问题
- parameters - 用于 params.social 的 Hugo config.toml 值以显示 stackoverflow 配置文件