是否可以從函數構造一個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