繁体   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