python - np.where 元素处理逻辑
问题描述
我有以下代码:
a = np.asarray([1,2,3,4,5,6,7])
b = 1.999
val = a[abs(a-b)<0.01]
c = np.where(val.size!=0,val[0],0)
print(c)
代码运行时没有任何问题,val.size!=0
并给出了输出c = 2
。
但是,例如,当 val.size 的计算结果为零时,
a = np.asarray([1,3,4,5,6,7])
b = 1.999
val = a[abs(a-b)<0.01]
c = np.where(val.size!=0,val[0],0)
print(c)
我收到错误:
IndexError: index 0 is out of bounds for axis 0 with size 0
为什么它val.size=0
不返回 0 而是尝试处理val[0]
不满足条件的值?
解决方案
推荐阅读
- javascript - Javascript 模块模式未按预期工作
- python - Python中容器中转义反斜杠的行为
- python - 根据熊猫中的任务返回日期和持续时间
- powershell - 在 Powershell 中使用 Select-String -NotMatch
- css - CSS图标按钮在移动视图上半离屏
- react-native - 替代有天赋的聊天反应原生
- java - 使用 ActivityScenarioRule 开始测试 - AndroidStudio
- javascript - AWS:JavaScript ajax 通过网页上的 RestAPI 显示 aws lambda 函数的结果
- angular - 在生产构建之前如何运行/调试/提供 Angular Element?
- javascript - Await 和 Async 可以等待计算完成吗?