- 主题:numpy或者cupy里,有没有能批量返回一批数值的index的办法
采用循环,然后用np.where或者cp.where或者cp.argwhere的办法都只能一个一个的
这样如果要找一系列值的index的话就太慢了,有没有批量找的办法……
就像np.isin或者cp.isin这种就很好用啊
--
FROM 131.243.19.*
就是np.where,如果参数Ndarray的dtype是bool,那么返回值的会是所有True的坐标
【 在 ldy (俺是马甲) 的大作中提到: 】
: 采用循环,然后用np.where或者cp.where或者cp.argwhere的办法都只能一个一个的
: 这样如果要找一系列值的index的话就太慢了,有没有批量找的办法……
: 就像np.isin或者cp.isin这种就很好用啊
: ...................
--
FROM 221.219.140.89
这个只适合一个个的,但是我想要的是通过矩阵操作出批量值
例如:
import numpy as np
a=np.arange(10000)
np.random.shuffle(a)
b=np.random.randint(0,10000,(1000,))
然后我希望找到每一个b在现在的a中的index
当然可以用循环一个一个去找,但是那是很慢的……
【 在 annals (repeat) 的大作中提到: 】
: 就是np.where,如果参数Ndarray的dtype是bool,那么返回值的会是所有True的坐标
--
修改:ldy FROM 76.214.110.*
FROM 76.214.110.*
...你这是要从value找key吗? 感觉颠倒一下从key找value比较方便
【 在 ldy (俺是马甲) 的大作中提到: 】
: 这个只适合一个个的,但是我想要的是通过矩阵操作出批量值
: 例如:
: import numpy as np
: ...................
--
FROM 221.219.140.89
不是,做科学计算的过程中需要用到这个功能
目前没有办法,就是用循环加np.where这样的方法(其实是用cp.where)
但是效率实在是太让人崩溃了
numpy,尤其是cupy做科学计算,如果都能写成矩阵操作,速度还是很快的
如果用fortran或者C,如果不用cuda,GPU,感觉还不如python+cupy
但是,python的问题是,如果不能写成矩阵操作,必须用循环,效率就完蛋了……
【 在 annals (repeat) 的大作中提到: 】
: ...你这是要从value找key吗? 感觉颠倒一下从key找value比较方便
--
FROM 76.214.110.*
大循环,用cython速度可以,有时候比numpy更快。
【 在 ldy 的大作中提到: 】
:
: 采用循环,然后用np.where或者cp.where或者cp.argwhere的办法都只能一个一个的
: 这样如果要找一系列值的index的话就太慢了,有没有批量找的办法……
: 就像np.isin或者cp.isin这种就很好用啊
: --
:
发自「今日水木 on Android」
--
FROM 120.244.10.*