python – 使用包含零的numpy创建nxn矩阵的最快方法[复制]
发布时间:2020-12-20 11:08:35 所属栏目:Python 来源:网络整理
导读:参见英文答案 Create Multidimensional Zeros Python????????????????????????????????????4个 简短的问题 – 这是在python中用零创建16×16(或nxn)矩阵的最快方法numpy的? a = np.matrix(np.zeros((16,16),dtype = np.int)) 解决方法 加速创建此矩阵的最佳
参见英文答案 >
Create Multidimensional Zeros Python????????????????????????????????????4个
简短的问题 – 这是在python&中用零创建16×16(或nxn)矩阵的最快方法numpy的? a = np.matrix(np.zeros((16,16),dtype = np.int)) 解决方法
加速创建此矩阵的最佳方法是完全跳过使用矩阵类并使用np.zeros:
a = np.zeros((16,16)) 跳过矩阵的使用可以获得10倍的加速: %%timeit a = np.matrix(np.zeros((16,16))) 4.95 μs ± 50.5 ns per loop (mean ± std. dev. of 7 runs,100000 loops each) %%timeit a = np.zeros((16,16)) 495 ns ± 2.18 ns per loop (mean ± std. dev. of 7 runs,1000000 loops each)
编辑:Paul Panzer在评论中链接了一个很好的discussion about the reasons behind 人们使用矩阵而不是数组的一个常见原因是a * b将执行矩阵乘法(而不是成对乘法,就像标准数组一样).但是,您现在可以使用闪亮的新矩阵乘法运算符@来使用标准数组轻松执行矩阵乘法: a = np.arange(2*2).reshape(2,2) b = np.arange(2*2,2*2*2).reshape(2,2) print('an%sn' % a) print('bn%sn' % b) print('a * b (pairwise multiplication)n%sn' % (a * b)) print('a @ b (matrix multiplication)n%sn' % (a @ b)) 输出: a [[0 1] [2 3]] b [[4 5] [6 7]] a * b (pairwise multiplication) [[ 0 5] [12 21]] a @ b (matrix multiplication) [[ 6 7] [26 31]] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |