python a and b_python-尽管Numpy建议a.b,为什么a.dot(b)比a @ b更...
根据question的答案,也根据numpy的答案,与a.dot(b)相比,二维数组的矩阵乘法最好通过a b或numpy.matmul(a,b)完成.
If both a and b are 2-D arrays, it is matrix multiplication, but using
matmul or a @ b is preferred.
我做了以下基准测试,发现相反的结果.
问题:我的基准测试有问题吗?如果不是,当Numpy比a @ b或numpy.matmul(a,b)快时,为什么Numpy不推荐a.dot(b)?
基准使用python 3.5 numpy 1.15.0.
$pip3 list | grep numpy
numpy 1.15.0
$python3 --version
Python 3.5.2
基准代码:
import timeit
setup = '''
import numpy as np
a = np.arange(16).reshape(4,4)
b = np.arange(16).reshape(4,4)
'''
test = '''
for i in range(1000):
a @ b
'''
test1 = '''
for i in range(1000):
np.matmul(a,b)
'''
test2 = '''
for i in range(1000):
a.dot(b)
'''
print( timeit.timeit(test, setup, number=100) )
print( timeit.timeit(test1, setup, number=100) )
print( timeit.timeit(test2, setup, number=100) )
结果:
test : 0.11132473500038031
test1 : 0.10812476599676302
test2 : 0.06115105600474635
附加结果:
>>> a = np.arange(16).reshape(4,4)
>>> b = np.arange(16).reshape(4,4)
>>> a@b
array([[ 56, 62, 68, 74],
[152, 174, 196, 218],
[248, 286, 324, 362],
[344, 398, 452, 506]])
>>> np.matmul(a,b)
array([[ 56, 62, 68, 74],
[152, 174, 196, 218],
[248, 286, 324, 362],
[344, 398, 452, 506]])
>>> a.dot(b)
array([[ 56, 62, 68, 74],
[152, 174, 196, 218],
[248, 286, 324, 362],
[344, 398, 452, 506]])
python a and b_python-尽管Numpy建议a.b,为什么a.dot(b)比a @ b更...相关推荐
- Python编写循环的两个建议 | 鹅厂实战
作者 | piglei(腾讯高级工程师) 转载自腾讯技术工程知乎专栏 循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行.而" ...
- 数据分析之python数据计算方法汇总(math|numpy|pandas)
数据分析之python数据计算方法上篇(math|numpy)_Backup and share的博客-CSDN博客 本文重点介绍pandas,math和numpy参见上篇> 目录 一.简介与创 ...
- 【Python学习笔记】cs231nPython Numpy教程
[Python学习笔记]cs231nPython Numpy教程 回顾经典教程cs231n,完成assignments觉得很困难,感觉自己python基础语法掌握的不是很熟,就顺藤摸瓜找了cs231n ...
- 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?
众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...
- 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?
众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...
- python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议
<Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: <Python之禅>中对于Pyt ...
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片.相互转换 目录 numpy中的array格式数据切片与pandas中的dataframe ...
- python计算图解_图解NumPy,看这一篇就够了!
晓查 编译整理 量子位 报道 | 公众号 QbitAI NumPy是Python的最重要的扩展程序库之一,也是入门机器学习编程的必备工具.然而对初学者来说,NumPy的大量运算方法非常难记. 最近,国 ...
- 【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识
前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录: ...
最新文章
- 兄弟9020cdn废粉仓位置_硒鼓的无废粉仓设计是否真的有效?
- 查找重复文件_重复文件快速查找删除
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
- NTP时间服务相关基础及配置文件详解
- c语言单词翻译大全,c语言单词翻译
- appium怎么操作物理返回键_Appium Studio使用指南(windows做ios自动化,录制appium脚本)...
- 数组对象根据某个属性取出重复的个数
- 【公开课预告】:超低延迟下的实时合唱体验升级
- java 缓存ech_ehcache获取缓存空指针
- Seize Operation Master
- 计算机基础:多媒体基础知识笔记
- Kinect for Windows SDK开发初体验(二)操作Camera
- 子程序调用编程序例子_汇编程序设计:LCD1602静态显示
- 2017计算机湖北对口试题答案,2017年计算机专业对口考试试卷及答案
- oracle 创建数据库表 如果此表存在则删除后再重建
- 存储极客谈“SPC-1负载分析与AFA寿命评估”
- QT Creator 5.1.2中英文切换
- java aspose 给Word添加水印
- 国内外IoT系统介绍
- coolpad s6 android 6,酷派S6手机做工怎么样 酷派S6拆机图解详细评测
热门文章
- c++矩阵连乘的动态规划算法并输出_「Javascript算法设计」× 动态规划与回溯算法...
- 串口服务器的通讯模式
- 百兆工业交换机与千兆工业交换机如何计算码率?
- 【渝粤教育】广东开放大学 云计算技术与应用 形成性考核
- 【渝粤题库】国家开放大学2021春2757宠物饲养题目
- 【渝粤题库】国家开放大学2021春2108刑法学(2)答案
- 【案例】无线串口模块 星型网络组网 案例
- lora近几年发展的具体介绍
- 魅蓝x android 7,魅蓝x2什么时候发布 魅蓝x2发布时间最新消息
- linux读取.data文件,[20121227]v$datafile访问是从数据文件获取信息吗.txt