numpy-broadcasting

    2熱度

    2回答

    我想創建一個NumPy數組充滿了對象,我想知道是否有一種方式,我可以廣播到整個數組爲每個對象做一些事情。 代碼: class player: def __init__(self,num = 5): self.num = num def printnum(): print(self.num) ... objs = np.array([player(

    4熱度

    3回答

    鑑於矩陣X與T行和列k: T = 50 H = 10 k = 5 X = np.arange(T).reshape(T,1)*np.ones((T,k)) 沿着行與滯後H軸線如何執行的X滾動累積和? Xcum = np.zeros((T-H,k)) for t in range(H,T): Xcum[t-H,:] = np.sum(X[t-H:t,:], axis=0)

    6熱度

    3回答

    我想實現一種方法,使用歐幾里得距離來基於它們與示例數據集的相似性來聚集測試數據集中的點。測試數據集有500個點,每個點是N維向量(N = 1024)。訓練數據集大約有10000個點,每個點也是一個1024-暗矢量。目標是找到每個測試點與所有采樣點之間的L2距離以找到最接近的採樣點(不使用任何蟒蛇距離函數)。由於測試陣列和訓練陣列具有不同的尺寸,我試圖使用廣播: import numpy as np

    2熱度

    2回答

    我有一個M乘N的數組I,它的每一行都是索引,一個N維數組A。我想要一個矢量化表達式來從A獲得M個索引值的一維數組。我發現A[tuple(I.T)]做的是正確的事情,但是剖析表明它儘管被矢量化了,但它非常昂貴。它也不是特別優雅或「自然」,A[I]和A[I.T]做一些完全不同的事 什麼是正確的方法來做到這一點? 它應該也適用於分配如 A[tuple(I.T)] = 1

    2熱度

    1回答

    我學習numpy的線性algerba,我想執行一個簡單的計算: 我: m = np.array([[1,2], [3,4], [5,6]] v = np.array([10,20,30]) 我要計算什麼/輸出: [ [1/10, 2/10], [3/20, 4/20], [5/30, 6/30]] 主要執行元件 - 每行m和每個元素之間

    1熱度

    3回答

    我遇到廣播問題。如果可能的話,我希望能夠將x,y四個不同數組的元素分配給2x2矩陣。 a = np.arange(6).reshape(2,3) b = np.arange(6,12).reshape(2,3) c = np.arange(12,18).reshape(2,3) d = np.arange(18,24).reshape(2,3) x = np.array([[a, b],

    2熱度

    1回答

    的行矩陣I具有矢量[x,y,z,q]和我想創建一個矩陣: [[x,y,z,q], [x,y,z,q], [x,y,z,q], ... [x,y,z,q]] 具有m行。我認爲這可以通過廣播以一種聰明的方式完成,但我只能想到用for循環做這件事。與m零增加沿着列,像這樣經過

    4熱度

    2回答

    我在學習numpy,對廣播有點困惑,這裏是我的設置。我有兩個矩陣 >>> y=np.array([1,2,3]) >>> v = np.array([1,2,3]) >>> r=np.reshape(v, (3, 1)) 因此r是(3 * 1)矩陣,而y是形狀爲(3,)的秩爲1的矩陣。如果我做了y.dot(r),我得到了14,假設numpy在y上應用廣播,使它成爲(1 * 3),然後用r(

    0熱度

    1回答

    我試圖向量化/廣播(不知道它是什麼形式調用)我的代碼,以使其更快,但我不明白。我認爲我應該使用的是numpy.cumsum(axis = 0),但我不知道如何在正確的數組中使用它(快速)。 我想要的代碼基本上是l1的絕對總和,用於將l2中的每個元素添加到l1中的所有數字。所以這不是一個答案,而是len(12)個答案。下面的(非矢量化)代碼給出了正確的輸出。 # l1 and l2 are nump

    2熱度

    2回答

    我正在嘗試沿着一個屏蔽廣播的行,只有特定的值被廣播。 假設我有一個更大的陣列,bigger_array,和一個較小的陣列,smaller_array: import numpy as np import numpy.ma as ma bigger_array = np.zeros((4,4), dtype=np.int32) smaller_array = np.ones((2,2), d