填充三维零数组而不覆盖以前的值

2024-06-28 11:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在for循环中填充一个3D数组

我的问题有两个-

问题1:我一直覆盖上一个条目,只剩下最后一个循环的值

问题2:我一直在使用np.empty来初始化我的3D数组,但是我意识到它输入了非常小的数字,这会扭曲我的结果。因此,我认为应该改用np.zero,但我不知道如何设置代码

问题1:我目前正在for循环中使用np.append,但它似乎并没有实际附加每个循环,只是最新的运行

问题2:对于np.empty问题,我尝试了四舍五入(这是可行的,但我认为这可能会影响结果的精度)。 -我也尝试过初始化一个零数组,但是ran意识到我不能附加到零,并且在尝试填充它时遇到了一堵墙

代码:

 z = np.arange(Z_min,Z_max,Z_increment)

 MagPearmbObject = np.arange(0,100,25)

 Metrics_array= np.empty((len(z),len(MagPearmbObject),5))

 for m in range(len(z)):
     for k in range(len(MagPearmbObject)):

         min_TF = np.min(TotalFieldMagnitude[m,::,::,k])

         max_TF = np.max(TotalFieldMagnitude[m,::,::,k])

         dipole = max_TF_temp - min_TF_temp
         np.append(Metrics_array,z[m],MagPearmbObject[k],max_TF,min_TF,dipole),)

基本上,我想以一个具有z层(在垂直轴上)的3D阵列结束,然后每个2D层将有4列(磁导率、max\u TF、min\u TF、偶极子)


Tags: 代码forlentfnp数组minarray