动态扩展scipy数组

Har*_*man 5 python scipy

有没有办法动态扩展scipy数组

from scipy import sci
time = sci.zeros((n,1), 'double')

time在此之后我们可以增加数组的大小吗?

unu*_*tbu 5

可以使用该resize方法扩展数组,但对于大型数组来说它可能是一个缓慢的操作,所以尽可能避免使用*.

例如:

import scipy as sci
n=3
time = sci.zeros((n,1), 'double')
print(time)
# [[ 0.]
#  [ 0.]
#  [ 0.]]

time.resize((n+1,2))
print(time)
# [[ 0.  0.]
#  [ 0.  0.]
#  [ 0.  0.]
#  [ 0.  0.]]
Run Code Online (Sandbox Code Playgroud)

*相反,要弄清楚从一开始就需要多大的数组,并将该形状分配time一次.通常,过度分配比调整大小更快.

  • 我会将数据附加到普通的Python列表(或列表列表),然后在修复大小后将其转换为带有`time = np.array(time)`的numpy数组. (2认同)