python - 循环遍历一个 numpy 数组,将内容汇总到另一个数组
问题描述
我试图循环遍历一个 nd numpy 数组并遇到问题
下面代码的第一部分只是制作了一个坐标系和随机数
import numpy as np
import math
N = 100
h, i = np.linspace(-20., 20., N), np.linspace(-20., 20., N)
xh, yi = np.meshgrid(h, i)
E1= np.empty_like(xh)
E2= np.empty_like(yi)
Et = np.empty_like(xh)
poo=10
ppp = [5]*poo
A=np.linspace(10, 50,poo)
B=np.linspace(-30, 10,poo)
C=np.linspace(-10, 20,poo)
D=[]
AAA=[]
for i in range(len(A)):
D=(A[i],B[i],C[i])
AAA.append(D)
#everything above this is fine
在此之下,我想要等式 AAA0-AAA1+AAA2 = E1 有 10 个不同的 D,每个 D 有 3 个分量。所有 D 的组合 = AAA
for i in range(poo):
for j in range(poo):
x, y = xh[i,j], yi[i,j]
for k in range(len(AAA)):
E1[i,j] += AAA[k][0]-AAA[k][1]+AAA[k][2]
E2[i,j] += AAA[k][0]-AAA[k][1]*AAA[k][2]
Et[i,j] = (E1[i,j]**2+E2[i,j]**2)**(0.5)
print(Et)
我得到的结果是这样的。似乎每个坐标的 E1 仅在 1 个坐标上进行总结,而 E2 也在做同样的事情。
我怎样才能使 E1 循环通过所有 AAA 的第一个坐标,然后通过所有 AAA 的第二个坐标等....
[[ 1.19876022e-311 1.19880258e-311 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000 0.00000000e+000]
...,
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000 ...,
0.00000000e+000 0.00000000e+000
我只是希望它正确循环而不是将所有内容都放在前几个值中
解决方案
警告 - NAA
你有太多明显的问题,你没有充分解释你想要它做什么。
在您的示例中,E1
形状E2
是 (100,100) 并且poo
是10
for i in range(poo):
for j in range(poo):
...
E1[i,j] ...
...
此循环仅覆盖和-的左上角( 10,10) 。E1
E2
Ex[:10, :10]
要覆盖整个空间,请尝试
for i in range(N):
for j in range(N):
但看起来你还有其他问题。
E1[i,j] += AAA[k][0]-AAA[k][1]+AAA[k][2]
有效地意味着
E1[i,j] = (AAA[k][0]-AAA[k][1]+AAA[k][2]) ** (N*N) #if using range(N) in the loops
这使得数字非常大。
推荐阅读
- plot - 如何在 Scilab 中绘制曲线?
- flutter - Flutter 访问底部 Navigation 父级的上下文
- python - 具有随机变量的幂函数
- html - Bootstrap 下拉菜单出现在悬停...不点击
- installation - 我无法在 MacOS High Sierra 中安装 Quantum Espresso
- ios - 禁用粘贴菜单 iOS
- javascript - 控制 Google Drive 中的文件上传位置(应用脚本不是表单)
- php - 如何将 storeUrl 传递给默认的 Magento oauth 脚本?
- c++ - 如何将值传递给结构中的 std::optional?
- c# - 在使用 C# 在 Selenium 中执行下一个操作之前,我可以使用哪个“等待”来等待?