在Python中,当新向量为空时替换它

wvyml7n5  于 2022-11-21  发布在  Python
关注(0)|答案(1)|浏览(117)

你好,有一个原始向量,我想把前3个元素放入新向量,做一些数学运算,然后得到新的元素。把这些新的元素放入一个新向量,删除原始向量中的前3个元素,并重复这个过程,直到原始向量为空。
这是我目前所做的

OR=np.array([1,2,3,4,5,6])

new=OR[0:3]

while (True):

    tran=-2*c_[new]

    OR= delete(OR, [0,1,2])

    new=OR[0:3]

    
    if (OR==[]):

        break

然而,它并没有正常工作,你有什么建议?

n3ipq98p

n3ipq98p1#

不确定你的代码中c_是什么,但是不管怎样,因为numpy数组不是动态的,你不能删除或添加元素。删除元素会创建一个没有这些元素的新数组,这不是最优的。我认为你应该使用一个python deque,它有快速的pop方法从前端/后端删除一个元素,或者只是迭代原始的numpy数组,例如:

def modify_array(arr):
    # your code for modifying the array here

result = []
original_array = np.arange(1, 10)

for idx in range(0, len(original_array), 3):
    result.append(modify_array(original_array[idx:idx+3]))

result = np.concatenate(result)

相关问题