Python 数组值函数的Numpy矢量化
我有一个矩阵值函数(即$M(t):R\to R^2$),我想做一个numpy数组(即[t1,M(t1)],[t2,M(t2)],…])。我的解决方案很明显也很笨拙:Python 数组值函数的Numpy矢量化,python,arrays,numpy,memory,vectorization,Python,Arrays,Numpy,Memory,Vectorization,我有一个矩阵值函数(即$M(t):R\to R^2$),我想做一个numpy数组(即[t1,M(t1)],[t2,M(t2)],…])。我的解决方案很明显也很笨拙: bigM = np.zeros(100, 10, 10) tArray = np.linspace(1, 101, 100) for i in range(100): bigM[i,:,:] = smallM(tArray[i]) 但它的速度非常慢,而且在某些情况下会出现内存问题(事实上,10和100远远超过10和100:
bigM = np.zeros(100, 10, 10)
tArray = np.linspace(1, 101, 100)
for i in range(100):
bigM[i,:,:] = smallM(tArray[i])
但它的速度非常慢,而且在某些情况下会出现内存问题(事实上,10和100远远超过10和100:)。因此,有两个问题:
tArray = np.linspace(1, 101, 100)
someArray = np.zeros(len(tArray))
for i in range(100):
M = smallM(tArray[i])
...
someArray[i] = someFunction(M)
...
然而,同样的两个问题还是出现了
UPD2:smallM是来自第三方库的矩阵值函数
smallM
在做什么?需要花费时间的主要事情是调用smallM
100次。迭代机制有很多变化,但它们在时间上没有多大差别。只要它是一个“黑匣子”,我们就帮不了你。之前的许多问题中有一个是这样的smallM
在做什么?最重要的是要花时间打100次电话给smallM
。迭代机制有很多变化,但它们在时间上没有多大差别。只要它是一个“黑匣子”,我们就帮不了你。这是之前许多类似问题中的一个