V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  necomancer  ›  全部回复第 18 页 / 共 32 页
回复总数  634
1 ... 14  15  16  17  18  19  20  21  22  23 ... 32  
2019-07-04 22:59:55 +08:00
回复了 sunhk25 创建的主题 Python Python +mongodb:如何快速计算大量向量近似度
In [29]: a = np.random.random((200000,250))

In [30]: my_inner_prod(a,a)
Out[30]: array([1., 1., 1., ..., 1., 1., 1.])

In [31]: %timeit my_inner_prod(a,a)
49.3 ms ± 850 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

I7-3687u
2019-07-04 22:56:28 +08:00
回复了 sunhk25 创建的主题 Python Python +mongodb:如何快速计算大量向量近似度
numpy 的 dot 和 einsum 都比较慢,你可以考虑用 numba 的 guvectorize
@guvectorize([(float64[:], float64[:], float64[:])],
'(n),(n)->()', target='parallel')
def my_inner_prod(a, b, ret):
tmp1 = tmp2 = tmp3 = 0
for i in range(a.shape[0]):
tmp1 += a[i] * b[i]
tmp2 += a[i] * a[i]
tmp3 += b[i] * b[i]
ret[0] = tmp1 / (tmp2 * tmp3) ** 0.5
这个是 cos(theta),如果不除以模量则只要 tmp1 就可以了
可以快很多。只要向量维度是对齐的,比如 (100000,250) . (100000,250) -> (100000,)
或者(100000,250) . (1,250) -> (100000,)
降维是不是可以考虑 PCA?
2019-06-30 21:28:53 +08:00
回复了 noli 创建的主题 Python [可能引战] 用过 Python 也没法理解为什么 Python 是个好语言
@noli 作为非数学科研人员,非数学方面高浮点计算力需求除了很多已经有人做好的开源 /商业实现(lammps, gromacs, gauss, amber, MS...),现在基本上是用 NumPy 了,而很多成名已久的老软件也开始 C++/C, CUDA 然后用 Python 做胶水这样,numpy array 作为“苦力”,这样在程序运行中很方便实时自己写东西进行处理。NumPy 的各种操作基于 MKL,效率还是很高的。我所知道的纯数学类用得比较多的可能是 Matlab 和 Mathematica,但可能是符号运算、各种群论图论拓扑之类的神仙操作比较多吧,干暴力浮点运算要求少,他们的神仙课题不太懂。至于 CUDA,如果不是要使劲搞一个 lammps,gromacs 体量的大作,numba 的 jit, vectorize, cuda.jit 和 cython 基本上非常够用。从好上手的角度上说,Python 确实最友好,各种格式的读写,和 C, Fortran (没错,科研党还有相当一大部分人用) 的接口全面,NumPy 的向量化操作也让代码很具有公式上的可读性,而且非数学并且有大量暴力浮点运算的专业而言,Python 的入门要比 Matlab, mathematica 之类的简单得多,至于 Julia,生态算硬伤。
2019-06-30 21:05:25 +08:00
回复了 noli 创建的主题 Python [可能引战] 用过 Python 也没法理解为什么 Python 是个好语言
@oblivious 作为科研党必须给个赞
@BiuBiuBiu Springer undergraduate mathematics series, GTM 是对应的 graduate mathematics textbooks
2019-06-25 23:14:15 +08:00
回复了 chenstack 创建的主题 程序员 Windows Terminal (Preview) 试用感觉
@iEverX 赞!
2019-06-25 11:21:06 +08:00
回复了 abcbuzhiming 创建的主题 数学 线性代数想认真学习的话该如何入手
我刚回复过另一个帖子:去看 SUMS 系列的 Linear algebra 和 Further Linear algebra,基本够用了。想更进一步去看 GTM 系列的线性代数。离散数学看 Rosen 的就行。速成的话看懂神马是厄密矩阵,本征值,本征值的几何意义,SVD 和对角化的区别,优化问题的应用和张量代数,去捅咕明白 numpy.einsum 这个函数,日常各种操作够用。有点基础了有本书叫《线性代数应该这样学》,水平很高。一般这书内容大致了解也就算了解线性代数了,能看通透那就很厉害了。
去看 SUMS 系列的 Linear algebra 和 Further Linear algebra,基本够用了。想更进一步去看 GTM 系列的线性代数。离散数学看 Rosen 的就行。速成的话看懂神马是厄密矩阵,本征值,本征值的几何意义,SVD 和对角化的区别,优化问题的应用和张量代数,去捅咕明白 numpy.einsum 这个函数,日常各种操作够用。有点基础了有本书叫《线性代数应该这样学》,水平很高。一般这书内容大致了解也就算了解线性代数了,能看通透那就很厉害了。
2019-06-25 11:02:34 +08:00
回复了 chenstack 创建的主题 程序员 Windows Terminal (Preview) 试用感觉
不知道为啥 powershell 明明设置了透明度但没用
所以你应该放弃大多数流行语言,因为,人的一生是有限的,所以人一生中遇到的对象总数是有限的。于是当你在程序里遇到的越多,在现实生活中遇到的就越少。
金钱和美女 ×

事业和爱情 √
2019-06-18 09:38:16 +08:00
回复了 shanlan 创建的主题 程序员 杜伽还是 IKBC?
匿了什么鬼……你头像在右边可以点开……
2019-06-12 01:15:17 +08:00
回复了 ainiyiwannian 创建的主题 程序员 V2EX 站回复友好度讨论
看标题第一反应是你是不是抓了 v2 的评论数据然后去做了语义分析……
2019-06-10 09:10:13 +08:00
回复了 jiangxinlingdu 创建的主题 程序员 高考结束,你们第一件事情干嘛?
当然是接着学习了……
2019-06-08 05:49:29 +08:00
回复了 VIPID 创建的主题 程序员 到目前为止,你仍记得的最长的一串字符是什么?
京中有善口技者,从此君王不早朝。
2019-06-08 05:48:00 +08:00
回复了 VIPID 创建的主题 程序员 到目前为止,你仍记得的最长的一串字符是什么?
朕与先生解战袍,芙蓉帐暖度春宵。
但使龙城飞将在,从此君王不早朝。
2019-06-06 22:49:41 +08:00
回复了 going2think 创建的主题 Python numpy 如何取消循环操作
这个函数基本上是在用 np.lib.stride_tricks.as_strided,所以如果你没有 skimage,去 skimage 找到那个函数拷过来就行。麻烦的地方只在怎么根据 window_size 和 step 算 stride
1 ... 14  15  16  17  18  19  20  21  22  23 ... 32  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2130 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 06:10 · PVG 14:10 · LAX 23:10 · JFK 02:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.