繁体   English   中英

在 for 循环中替换数组列的值 Python

[英]Replace the values of a column of an array in a for loop Python

我有一个 3D 零数组,我想使用 for 循环替换第二列和第三列的元素。 在 matlab 中,我创建了一个零矩阵并填充它,但在 python 中,我不明白我该怎么做。

我尝试了以下方式:

U=np.zeros((3,150,150))
step=10
A=[rows,columns]
jj=0
    for j in range(1,columns+1,step):
        jj=jj+1 #jj total = 184
    

         ii=0
         for i in range(1,rows+1,step):        
             ii=ii+1  #ii total = 154


             U[:,0,1]=ii,jj

这样,我得到一个数组 U,其中第二列和第三列的每个值都有最后一个 ii 和 jj 的值。

相反,我希望数组 A 中存在的每个像素(i,j)按照定义的步骤逐步替换为数组 U 的第二列和第三列。 你有什么想法吗?

最后,数组 U 的大小为 (3x154x184)

此代码将在 for 循环中将 A 的值放入 U。 如果您有其他逻辑要使用,您可以将其添加到跳过的行中。

import numpy as np

columns = 150
rows = 150
step=1
A=np.random.randint(100, size=(columns,rows))
U=np.zeros((3,columns,rows))

jj=0
for j in range(0,columns,step):
    jj=jj+1 #jj total = 184
    
    
    ii=0
    for i in range(0,rows,step):        
        ii=ii+1  #ii total = 154
        
        U[:,ii-1,jj-1]=A[i,j]

print(U)

如果这就是您想要完成的全部,您可以像这样更简单地完成它:

U[:]=A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM