是否可以从函数构造一个numpy
矩阵?在这种情况下,具体而言,函数是两个向量的绝对差值:S[i,j] = abs(A[i] - B[j])
。使用常规的Python的最小工作示例:从两个向量的差异填充numpy矩阵
import numpy as np
A = np.array([1,3,6])
B = np.array([2,4,6])
S = np.zeros((3,3))
for i,x in enumerate(A):
for j,y in enumerate(B):
S[i,j] = abs(x-y)
,并提供:
[[ 1. 3. 5.]
[ 1. 1. 3.]
[ 4. 2. 0.]]
这将是很好有一个建筑,看起来像:
def build_matrix(shape, input_function, *args)
,我可以通过一个输入函数,并保留numpy的速度优势。
这是可能的。你有什么尝试? – Marcin 2012-03-14 15:13:29
@Marcin - 如问题中所述,我现在使用普通的旧python方法来填充矩阵。查看numpy的文档表明函数'vectorize'可能是有用的,但我仍然没有看到如何从函数中首先构造矩阵。如果你能指出我正确的方向(文档化),我会很感激! – Hooked 2012-03-14 15:17:30
这应该是在普通的Python中可能的。你有没有尝试过创建你的build_matrix函数?当然你有一些东西,并且卡在某个地方,而不是希望有人会为你写这一切。 – Marcin 2012-03-14 15:23:12