Python-numpy逻辑报错:
2023-09-11 14:14:27 时间
如果是底层的安装包报错,不能去改底层包的代码,直接下载最新的安装包,更新即可。按底层包,每个地方安装都需要改很麻烦。
pip install visualdl --upgrade -i https://mirror.baidu.com/pypi/simple
问题:
我的代码是想判断两个nparray是否完全相等,
if prediction[i] == Y_test[i]:
运行时报的错误为:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
原因:
假设存在两个nparray:
a = np.array([1,2,3])
b = np.array([1,3,2])
如果用 == 号判断二者元素是否完全相等:
print a==b
结果为:
[True False False]
可以看出它是对每个应用位置元素进行比较,
相同就返回True,不同就返回False,
所以, 源代码 相当于是:
if [True False False]:
逻辑上就不正确,
按照报错的提示,我们要使用any(), 或者 all(),
假设还是两个nparray如下:
a = np.array([1,2,3])
b = np.array([1,3,2])
运行:
print any(a==b)
print all(a==b)
对应结果为:
True
False
什么意思呢, 其实很简单,
首先 a==b 就是 [True False False]
那么
any([True False False])
表示只要有一个True 就返回 True,
all([True False False])
表示所有元素为True才会返回True, 否则返回False.
结论:
那么要比较两个nparray是否完全相等,
利用all()即可.
reference:
https://stackoverflow.com/questions/28899920/numpy-the-truth-value-of-an-array-with-more-than-one-element-is-ambiguous
、
相关文章
- 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍
- 【Python】模块之queue
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
- Python实现常用的逻辑数据结构
- 使用Python处理Excel表格的简单方法
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
- Python 数据驱动工具:DDT
- python:pip升级pip本身和setuptools(Python 3.7.15)
- python code practice(二):KMP算法、二分搜索的实现、哈希表
- Python 刷Leetcode题库,顺带学英语单词(31)
- Python:python语言中与时间有关的库函数简介、安装、使用方法(获取当前时间/计算程序块前后运行时间/模型训练时间或耗费时间)之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)
- Python math 模块
- Python基础——PyCharm版本——第八章、文件I/O(核心1)附件——Python os.chmod() 权限参照表
- Python可视化数据分析01、python环境搭建
- 已解决Visit python.org to download an earlier version of Python.
- 自学了半个月python,感觉没用,怎么办?
- Python学习11:使用list和tuple
- Ubuntu下完美切换Python版,即设置系统默认的python版本(亲测有效)
- Python编程:twine模块打包python项目上传pypi
- python练习1--用户登入
- python基础===Python 代码优化常见技巧
- aes python加密
- 关于python语言使用redis时,连接是否需要关闭的问题
- 【Python-Numpy】numpy.stack()的解析与使用
- 【Python基础】python爬虫之异步网络爬虫ǃ