在我的程序中,我需要在一个循环超过1000次的函数中使用大约500x500到1500x1500的数组。在每次迭代中,我需要从一个具有相同形式的数组开始(其尺寸在所有迭代中都是固定的)。初始值为:
[0 0 0 ... 1]
[0 0 0 ... 1]
....
但是,数组的内容将在循环内修改。将数组“重置”为这种格式的最有效方法是什么,这样我每次都可以将相同的数组传递给函数,而不必每次都分配一组新的内存? (我知道修改过的行的范围)
我试过了:
a[first_row_modified:last_row_modified,:] = 0.
a[first_row_modified:last_row_modified,:-1] = 1.
但每次使用以下内容创建新数组所需的时间大致相同:
a = zeros((sizeArray, sizeArray))
a[:,-1] = 1.
有没有更快的方法来有效地“擦除”数组并将最后一列更改为1?我认为这类似于这个问题clearing elements of numpy array,虽然我的数组没有改变大小,但我没有看到对前面提到的问题的确切答案。
答案 0 :(得分:0)
没有;我认为你这样做的方式和它一样快。