【发布时间】:2017-03-10 17:53:38
【问题描述】:
我有一个 numpy 字符串数组,其中一些重复,我想将每个元素与每个其他元素进行比较,以生成一个新的 1 和 0 向量,指示每对 (i,j) 是相同还是不同。
例如["a","b","a","c"] -> 12 元素 (4*3) 向量 [1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1]
有没有办法在 numpy 中快速做到这一点,而无需对所有元素对进行双循环?我的数组有大约 240,000 个元素,因此以天真的方式完成它需要很长时间。
我知道numpy.equal.outer,但显然numpy.equal 没有在字符串上实现,所以看来我需要一些更聪明的方法来比较它们。
【问题讨论】:
-
你是怎么得到
[1,0,1,0,0,0,0,0,0,0,0,0]的?你能解释一下吗?也许实现一个我们可以尝试矢量化的双循环版本? -
你真的需要更好地解释你从
[a,b,c,d]=> other thing的转变
标签: python numpy numpy-ufunc