簡體   English   中英

有沒有辦法引用 numpy 矩陣的列/行號來執行操作? (如果沒有,dataframe?)

[英]Is there a way to reference the column/row number of a numpy matrix to perform operations? (of if not, a dataframe?)

我想將 function 應用於 numpy 矩陣的所有元素/單元格。 它會很大(100k*100k),所以我想快速完成。 我可以用 forloop 填充它,但估計需要 43 天。

我基本上想使用每個元素的行號和列號來執行計算。 最終的應用程序有比這更多的移動部分,但為了說明:下面的條目“X”是 2,因為它是第 1 行和第 1 列,(1+1)。 最后,我將使用返回的行數和列數來搜索另一個 dataframe 的值,並執行計算,但是一旦我理解了以下內容,這應該很容易。

如果使用 numpy 矩陣無法做到這一點,我可以使用 df 執行此操作,然后將其轉換為 numpy 數組。 但我認為這會慢一些。

所以在下面,我希望每個“單元格”通過引用它的行和列來計算一些東西#

rows   c1   c2  c3

0      0    0    0
1      0    X    0
2      0    0    0

非常感謝! X

后編輯:

所以我有一個像這樣的 numpy 數組/矩陣。 零只是占位符,我用“X”指代哪個單元格的選擇是任意的。

rows   c1   c2  c3

0      0    0    0
1      0    X    0
2      0    0    0

然后我有這個dataframe如下


    attribute 1
0   a
1   b
2   c
3   d

因此,例如,我想在每個“單元格”中放置一個操作,從而根據其自己的 position 提供的 arguments 查找 dataframe。 例如,這個 X 有 position 第 1 行第 1 列,所以它的 arguments 是 [1,1],所以它在 Z6A8064B5DF479455500553C47C55057'Dbb' 中查找索引兩次並返回 concatenation 屬性。 最主要的是“單元格”中的公式引用了它自己的position。

例如,在下面的數組中,標記為“y”的 position 將返回“bc”。

rows   c1   c2  c3

0      0    0    0
1      0    X    Y
2      0    0    0

我是新手,希望我解釋清楚

所以我要試一試,說你正在尋找這樣的東西:

x = 5 # or whatever n by n size you want for your matrix

arr = np.arange(0, x, 1)
vec = arr[:, np.newaxis]

vec + vec.transpose()

這將產生以下矩陣:

array([0, 1, 2, 3, 4],
      [1, 2, 3, 4, 5],
      [2, 3, 4, 5, 6],
      [3, 4, 5, 6, 7],
      [4, 5, 6, 7, 8]])

這是您要查找的i+j索引總和。 如果您想從 1 開始,那么您只需更改np.arange中的0即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM