在我的程序中,我需要在一个循环超过 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?我认为这类似于这个问题,清除 numpy array 的元素,尽管我的数组没有改变大小,而且我没有看到对先前提出的问题的明确答案。