矩阵中给定索引的增量

矩阵中给定索引的增量,第1张

矩阵中给定索引的增量

您仍然可以使用

bincount()
。关键是要转换
a
b
成扁平状索引的单一一维数组

如果矩阵

n
X
m
,你可以申请
bincount()
a * m + b
,构建从结果矩阵。

以您的问题为例:

In [15]: a = np.array([1, 2, 1, 1, 2])In [16]: b = np.array([2, 1, 1, 1, 1])In [17]: cnt = np.bincount(a * 3 + b)In [18]: cnt.resize((3, 3))In [19]: cntOut[19]: array([[0, 0, 0],       [0, 2, 1],       [0, 2, 0]])

如果数组的形状更复杂,则可能更容易使用

np.ravel_multi_index()
而不是手工计算平面索引:

In [20]: cnt = np.bincount(np.ravel_multi_index(np.vstack((a, b)), (3, 3)))In [21]: np.resize(cnt, (3, 3))Out[21]: array([[0, 0, 0],       [0, 2, 1],       [0, 2, 0]])

(帽子提示@Jaime指出

ravel_multi_index
。)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存