简体   繁体   English

将元素附加到 numpy nd 数组

[英]Appending elements to a numpy nd array

I have initialized a numpy nd array like the following我已经初始化了一个 numpy nd 数组,如下所示

arr =  np.zeros((6, 6))

This empty array is passed as an input argument to a function,这个空数组作为输入参数传递给函数,

def fun(arr):
    arr.append(1) # this works for arr = [] initialization
    return arr

for  i in range(0,12):
     fun(arr) 

But append doesn't work for nd array.但是 append 不适用于 nd 数组。 I want to fill up the elements of the nd array row-wise.我想按行填充 nd 数组的元素。 Is there any way to use a python scalar index for the nd array?有没有办法对 nd 数组使用 python 标量索引? I could increment this index every time fun is called and append elements to arr每次调用fun我都可以增加此索引并将元素附加到arr

Any suggestions?有什么建议?

In [523]: arr = np.zeros((6,6),int)                                                            
In [524]: arr                                                                                  
Out[524]: 
array([[0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0]])
In [525]: arr[0] = 1                                                                           
In [526]: arr                                                                                  
Out[526]: 
array([[1, 1, 1, 1, 1, 1],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0]])
In [527]: arr[1] = [1,2,3,4,5,6]                                                               
In [528]: arr[2,3:] = 2                                                                        
In [529]: arr                                                                                  
Out[529]: 
array([[1, 1, 1, 1, 1, 1],
       [1, 2, 3, 4, 5, 6],
       [0, 0, 0, 2, 2, 2],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0]])

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

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