python - 如何将形状 (60,58) (60,59) 的数组更改为相等
问题描述
我正在为我正在学习航空工程的朋友编写一个程序。我正在尝试测试我实现的数学是否有效。对于那些知道的人,我正在尝试计算差异(我认为我不是工程师,我不会假装我是)。
他给我发了一个堆栈溢出链接,指向他认为应该如何做。(线程可以在这里找到。他的版本对我不起作用,因为它给了我一个 Numpy 错误,如下所示:
numpy.core._internal.AxisError: axis 1 is out of bounds for array of
dimension 1
现在我尝试了一种不同的方法,它给了我一个不同的错误,如下所示:
ValueError: operands could not be broadcast together with shapes (60,58)
(60,59)
这种方法给了我上面的错误,我不完全确定如何解决它。我已经放了给我上述错误的代码。
velocity = np.diff(c_flow)/np.diff(zex)
ucom = velocity.real
vcom = -(velocity.imag)
deltau = np.divide((np.diff(ucom)),(np.diff(x)))
deltav = np.divide((np.diff(vcom)),np.diff(y))
print(deltau + deltav)
注:C_flow
在程序前面定义,是复势。zex
也早先定义为复变量的早期形式。x
和y
是来自坐标向量的两个坐标矩阵。
print 语句的预期结果应该为零或非常接近于零的值。(我不完全确定价值应该是多少,但正如我所说,我不是工程师)
先感谢您
编辑:
在遵循 BenT 的建议后,我使用了 np.gradient 和 np.sum 但这会在错误的方向上添加轴,因此为了抵消这一点,我将两个函数分开,如下所示:
velocity = np.diff(c_flow)/np.diff(z)
grad = (np.gradient(velocity))
divergence = np.sum(grad, axis=0)
print(np.average(divergence))
print(np.average(velocity))
解决方案
推荐阅读
- cplex - 如何为子模型设置时间限制?
- java - 将数组中的字符串转换为二维数组中的单词
- c# - 无法使用来自 C# 控制台项目之一的 log4net 将消息记录到 Application Insights
- javascript - 如何使用循环读取 json 文件并将变量插入定位器?
- java - 如何使用 HttpURLConnection 只发送一个请求
- google-chrome - 在 FIDO2 凭证获取期间单击浏览器弹出窗口上的取消按钮时,Chrome 和 Firefox 返回不同的错误
- sql-server - 删除并重新创建数据库项目中的所有对象
- pytorch - 如何处理 Pytorch 中的小批量损失?
- python - lxml查找不返回元素
- python - 删除回文字符串中的空格