numpy矢量化序列的分配

时间:2016-11-20 22:53:17

标签: python arrays numpy vectorization

是否存在numpy like in this discussion中序列的向量化元素分配?

例如:

xx = np.array([1,2], dtype=object)
expanded = np.arange(xx, xx+2)

而不是循环:

xx = np.array([1,2], dtype=object)
expanded = np.array([np.arange(x, x+2) for x in xx]).flatten()

这将用于将标量启发式映射到确定它的矩阵中的相邻单元格(例如,具有与{{{{{> < 1}}操作)。

1 个答案:

答案 0 :(得分:1)

喜欢这个吗?

>>> xx = np.array([3,8,19])
>>> (xx[:,None]+np.arange(2)[None,:]).flatten()
array([ 3,  4,  8,  9, 19, 20])

xx[:,None]操作将长度为n的向量转换为nx1矩阵,np.arange(2)[None,:])运算创建一个包含[0., 1.]的长度为1x2的矩阵。使用array broadcasting加在一起得到一个nx2矩阵,然后将其展平为长度为2n的向量。