python-3.x - 即使我没有使用数组,Python3 也会触发数组错误。可能我的语法错误,但我没有找到错误
问题描述
嗨,我已经为我的物理研究编写了一些代码,而且我对 python 还很陌生。
有人可以向我解释为什么
[code]while s < 3.05 and t < 1e-7 :[/code]
触发器
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我用谷歌搜索了一段时间并搜索了堆栈,但我不知道问题是什么。
解决方案
当我复制粘贴代码时(谢天谢地)并产生错误消息:
1231:~/mypy$ python3 stack53381357.py
Traceback (most recent call last):
File "stack53381357.py", line 105, in <module>
Z = Ek(X, Y)
File "stack53381357.py", line 67, in Ek
while s < 3.05 and t < 1e-7 :
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
请注意,完整的消息确实告诉我们问题出在哪里 - 在第Ek
67 行的函数中。这是相关信息。
这证实了我的评论 -Ek
使用数组参数调用,并通过循环传播,更改s
为数组。
当我在Ek
循环末尾添加打印时:
print(type(s), s.shape)
我得到,在错误之前:
<class 'numpy.ndarray'> (100, 100)
所以,是的,s
已经从一个标量变成了一个numpy
数组,形状X
和Y
你传递给的数组一样Ek
。
您的 3 个函数似乎是为标量输入编写的。我不会试图弄清楚它们应该如何处理meshgrid
输入。您可以遍历pa
andEa
元素。或者您可以修改函数,以便它们在给定数组值时表现。最起码
while (s<3.05) and (t<1e-7):
s
当是一个数组时,必须写成有意义的。数组输入可能还有其他问题。
推荐阅读
- reactjs - 为什么,确切地说,我们需要 React.forwardRef?
- java - 将动态 json 转换为具有动态字符串值的 java 对象。无键值json结构
- java - Spring Boot 慢 XHR 传输率
- node.js - 尝试安装 NodeJS 14 会改为安装 NodeJS 8
- javascript - 在带有 lit-element Web 组件的 html 渲染中插入一个节点
- node.js - 如何更改温斯顿时间戳中的时区?节点js
- c - C 编程中的长整数范围
- plotly - 使用 Plotly Express 渲染动画散点图时提高性能
- python - 在python中合并两个数据框的替代方法
- c - 为什么我会收到错误消息?