我想解决一个“非常简单”的问题。 Python中不是那么简单。鉴于大矩阵A和另一个较小的矩阵BI想B. 替代A的某些元素在Matlab软件应该是这样的:替换python中特定坐标的矩阵元素
Given A, row_coord = [1,5,6] col_coord = [2,4], and a matrix B of size(3X2), A[row_coord, col_coord] = B
在Python我试图用product(row_coord, col_coord)
从itertools
,产生该组所有需要在A中可访问的索引,但它不起作用。所有关于子矩阵替换的例子都是以块为单位的row_coord = col_coord例子。除了http://comments.gmane.org/gmane.comp.python.numeric.general/11912似乎与我面临的问题以及链接中的代码不起作用有关外,没有任何具体的内容。
注意:我知道我可以通过double for-loop实现我需要的东西,但是在我的数据中,这样的循环为一次迭代运行增加了9秒,我正在寻找更快的方法来实现这一点。
任何帮助将不胜感激。
您能否提供一些示例矩阵和向量?他们不必非常大,只需测试就可以了。 – Ffisegydd 2014-09-03 12:37:43
是的,当然:A = np.zeros([20,20])col_coord = [0,1,3] row_coord = [1,2] B = 1(让B设为常量)。解决这个问题的简单方法是:对于in row_coord:for b in col_coord:A [row_coord [a],col_coord [b]] = 1,但我想通过使用intertools实用程序使其更快。 。( – user3861925 2014-09-03 13:06:31