0

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

4

1 回答 1

0

不; 我认为你这样做的方式是尽可能快的。

于 2012-08-06T18:16:56.837 回答