读过很多讲解Numpy的教程后,我准备写一个Numpy系列。结合工作项目实践,以Numpy高效使用哲学为主线,重点讲解高频使用函数。

1 Numpy更高效

使用Python的地方,就能看到Numpy,尤其是需要数值计算的地方,Numpy的高性能更是体现的淋漓尽致。

它基于Python,提供远高于Python的高性能向量、矩阵和更高维度的数据结构。之所以性能高是由于它在密集型计算任务中,向量化操作是用C和Fortran代码实现。

2 导入Numpy

只需要一行代码就能导入:

在numpy包中,描述向量,矩阵和更高维度的数据集使用的术语是.

3 生成numpy数组

有许多方法能初始化一个新的numpy数组,例如:, 等,从文件中读入数据,从python的lists等都能生成新的向量和矩阵数组。例:

v和m的类型都是ndarray,这是numpy中最主要的数据结构之一

v和m的不同仅仅是它们的形状(shape), 我们能通过ndarray.shape属性发现它们的形状信息,shape属性很有用,尤其在深度学习模型调试中:

numpy中获取元素个数通过size:

4 为什么要用numpy?

到此,看起来非常像Python的list, 那我们为什么不用Python的list计算,干嘛非要创造一个新的数组(array)类型呢?

有多个原因:

Python的list是一个通用结构。Python的list能包括任意类型的对象,并且是动态类型, 它们不支持一些数学函数,比如矩阵的点乘,实现如此的函数对于Python的list而言,不会高效,因为它是动态类型

Numpy的array是静态类型和同质的,当array被创建时,元素的类型就确定

Numpy的array更节省内存

由于是静态类型,一些数学函数实现起来会更快,例如array间的加减乘除能够用C和Fortran实现

使用ndarray.dtype, 我们能看到一个数组内元素的类型:

如果我们尝试用str类型赋值给m,会报错:

创建数组时,能指定类型,通过为dtype赋值:

dtype更多取值:, , , , , 我们还可以显示的定义数据位数的类型,如:, , ,

明天推送此系列的第二篇,欢迎关注「Python3分钟」,这里全是Python和数据科学系列的好文章:

python计算密集型提速_揭秘Numpy“高效使用哲学”,数值计算再提速10倍!相关推荐

  1. python计算密集型提速_利用Cython加速计算密集型python任务

    何为计算密集型任务 下面贴上网上找到的描述计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率.对视频进行高清解码等等,全靠CPU的运算能力.这种计算密集型任务虽然也可以用多任务完成 ...

  2. python计算线段长度_实现显示线段长度

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  3. numpy归一化_使用numpy 高效实现K-Means聚类

    好久之前写过K-Means, 但写的极其丑陋,使用的时候还得用 sklearn.cluster.KMeans 包来干.最近需要手撕k-Means,自己也受不了多重for 循环这么disgusting的 ...

  4. python数组切片教程_手把手numpy教程【二】——数组与切片

    今天是Numpy专题的第二篇,我们来进入正题,来看看Numpy的运算. 上一篇文章当中曾经提到过,同样大小的数据,使用Numpy的运算速度会是我们自己写循环来计算的上百倍甚至更多.并且Numpy的AP ...

  5. python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...

    1 波士顿房价数据分析 安装好Python的Sklearn库后,在安装包下的路径中就能看到描述波士顿房价的csv文件,具体路径是"python安装路径\Lib\site-packages\s ...

  6. python计算密集型任务_Python多进程和多线程测试比高低,只为证明谁是最快的“仔”

    目的 前面分别详细介绍了python的多进程和多线程,如果还没看前面文章的,请先看下之前的文章详解内容.有任何疑问请留言.那这里就不再对多线程和多进程的实现和用法再赘述了.那各位同学学习了python ...

  7. python的mkl库_[转]Numpy使用MKL库提升计算性能

    from:http://unifius.wordpress.com.cn/archives/5 系统:Gentoo Linux (64bit, Kernel 3.7.1) 配置:Intel(R) Co ...

  8. python计算现场得分_浅谈用 Python 计算文本 BLEU 分数

    浅谈用 Python 计算文本 BLEU 分数 BLEU, 全称为 Bilingual Evaluation Understudy(双语评估替换), 是一个比较候选文本翻译与其他一个或多个参考翻译的评 ...

  9. python计算圆柱体积_如何用PYTHON计算体积公式

    用PYTHON计算体积公式 工具/原料 PYTHON 方法/步骤 1 打开PYTHON,新建一个空白的PY文档. 2 import math dir() 首先我们要引入模块,然后查看目录是否已经引入成 ...

最新文章

  1. java易语言_java程序员,0基础学习开发易语言。
  2. centos6.8_64部署django项目
  3. 如何在未来的大数据和机器学习领域,获得一份不错的工作?
  4. tutte定理证明hall定理_深入浅出|中心极限定理(Central Limit Theorem)及证明
  5. java验证ie版本的正则表达式_JS 浏览器类型判断,IE版本类型判断,正则表达式判断。...
  6. 项目代码matlab
  7. react刷新页面_【跟着官网学React】Hello World
  8. Android 网络通信 之 UDP
  9. C++的multi_map如何输出所有key值相等的元素
  10. 经纬度与度分秒相互转换
  11. COMSOL Multiphysics 多物理场仿真学习小记
  12. 神经网络训练的一些方法
  13. 下载VS(visualstudio)2019官方网站详解
  14. simulink仿真结果出现振荡
  15. 日期对象(Date)操作 getMonth()方法
  16. 三针重叠问题算法整理
  17. ZUCC_BB平台-Quiz B-3-5-答案
  18. Word图片上传控件(WordPaster)更新-2.0.15版本
  19. 经典励志名言100余句
  20. java修改文件和读取文件的方法(可以当游戏存档)。

热门文章

  1. 【01】如何在XMind中排列自由主题
  2. 在Java代码(非JSP及Action,Servlet,Controller)中获得WebRoot的物理路径
  3. Java中的静态方法和单例模式比较
  4. [原创]如何写好SqlHelper 之终章
  5. Hibernate SQL 方言(hibernate.dialect)
  6. LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告
  7. 企业传播的云计算时代还有多远?―21世纪广告―文章摘要―龙源期刊网
  8. silverlight 3 blend3最新版本 破解方法
  9. 404 单页应用 报错 路由_详解vue 单页应用(spa)前端路由实现原理
  10. Android图形之HWC(二十四)