Python NumPy库安装使用笔记


Posted in Python onMay 18, 2015

1. NumPy安装
使用pip包管理工具进行安装

$ sudo pip install numpy

使用pip包管理工具安装ipython(交互式shell工具)
$ sudo pip instlal ipython

$ ipython --pylab  #pylab模式下, 会自动导入SciPy, NumPy, Matplotlib模块

2. NumPy基础

2.1. NumPy数组对象

具体解释可以看每一行代码后的解释和输出

In [1]: a = arange(5)  # 创建数据

In [2]: a.dtype

Out[2]: dtype('int64')  # 创建数组的数据类型

In [3]: a.shape  # 数组的维度, 输出为tuple

Out[3]: (5,)

In [6]: m = array([[1, 2], [3, 4]])  # array将list转换为NumPy数组对象

In [7]: m  # 创建多维数组

Out[7]:

array([[1, 2],

       [3, 4]])

In [10]: m.shape  # 维度为2 * 2

Out[10]: (2, 2)

In [14]: m[0, 0]  # 访问多维数组中特定位置的元素, 下标从0开始

Out[14]: 1

In [15]: m[0, 1]

Out[15]: 2

2.2. 数组的索引和切片

In [16]: a[2: 4]  # 切片操作类似与Python中list的切片操作

Out[16]: array([2, 3])

In [18]: a[2 : 5: 2]  # 切片步长为2

Out[18]: array([2, 4])

In [19]: a[ : : -1]  # 翻转数组

Out[19]: array([4, 3, 2, 1, 0])

In [20]: b = arange(24).reshape(2, 3, 4)  # 修改数组的维度

In [21]: b.shape

Out[21]: (2, 3, 4)

In [22]: b  # 打印数组

Out[22]:

array([[[ 0,  1,  2,  3],

        [ 4,  5,  6,  7],

        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],

        [16, 17, 18, 19],

        [20, 21, 22, 23]]])

In [23]: b[1, 2, 3]  # 选取特定元素

Out[23]: 23

In [24]: b[ : , 0, 0]  # 忽略某个下标可以用冒号代替

Out[24]: array([ 0, 12])

In [23]: b[1, 2, 3]

Out[23]: 23

In [24]: b[ : , 0, 0]  # 忽略多个下标可以使用省略号代替

Out[24]: array([ 0, 12])

In [26]: b.ravel()  # 数组的展平操作

Out[26]:

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,

       17, 18, 19, 20, 21, 22, 23])

In [27]: b.flatten()  # 与revel功能相同, 这个函数会请求分配内存来保存结果

Out[27]:

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,

       17, 18, 19, 20, 21, 22, 23])

In [30]: b.shape = (6, 4)  # 可以直接对shape属性赋值元组来设置维度

In [31]: b

Out[31]:

array([[ 0,  1,  2,  3],

       [ 4,  5,  6,  7],

       [ 8,  9, 10, 11],

       [12, 13, 14, 15],

       [16, 17, 18, 19],

       [20, 21, 22, 23]])

In [30]: b.shape = (6, 4)  # 矩阵的转置

In [31]: b

Out[31]:

array([[ 0,  1,  2,  3],

       [ 4,  5,  6,  7],

       [ 8,  9, 10, 11],

       [12, 13, 14, 15],

       [16, 17, 18, 19],

       [20, 21, 22, 23]])

2.3. 组合数组

In [1]: a = arange(9).reshape(3, 3)  # 生成数组对象并改变维度

In [2]: a

Out[2]:

array([[0, 1, 2],

       [3, 4, 5],

       [6, 7, 8]])

In [3]: b = a * 2  # 对a数组对象所有元素乘2

In [4]: b

Out[4]:

array([[ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16]])

#######################

In [5]: hstack((a, b))  # 水平组合数组a和数组b

Out[5]:

array([[ 0,  1,  2,  0,  2,  4],

       [ 3,  4,  5,  6,  8, 10],

       [ 6,  7,  8, 12, 14, 16]])

       

In [6]: vstack((a, b))  # 垂直组合数组a和数组b

Out[6]:

array([[ 0,  1,  2],

       [ 3,  4,  5],

       [ 6,  7,  8],

       [ 0,  2,  4],

       [ 6,  8, 10],

       [12, 14, 16]])

In [7]: dstack((a, b))  # 深度组合数组, 沿z轴方向层叠组合数组

Out[7]:

array([[[ 0,  0],

        [ 1,  2],

        [ 2,  4]],

       [[ 3,  6],

        [ 4,  8],

        [ 5, 10]],

       [[ 6, 12],

        [ 7, 14],

        [ 8, 16]]])

2.4. 分割数组

In [8]: a

Out[8]:

array([[0, 1, 2],

       [3, 4, 5],

       [6, 7, 8]])

In [9]: hsplit(a, 3)  # 将数组沿水平方向分割成三个相同大小的子数组

Out[9]:

[array([[0],

        [3],

        [6]]), 

 array([[1],

        [4],

        [7]]), 

 array([[2],

        [5],

        [8]])]

In [10]: vsplit(a, 3)  # 将数组沿垂直方向分割成三个子数组

Out[10]: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

2.5. 数组的属性

In [12]: a.ndim  # 给出数组的尾数或数组的轴数

Out[12]: 2

In [13]: a.size  # 数组中元素的个数

Out[13]: 9

In [14]: a.itemsize  # 数组中元素在内存中所占字节数(int64)

Out[14]: 8

In [15]: a.nbytes  # 数组所占总字节数, size * itemsize

Out[15]: 72

In [18]: a.T  # 和transpose函数一样, 求数组的转置

Out[18]:

array([[0, 3, 6],

       [1, 4, 7],

       [2, 5, 8]])

2.6. 数组的转换

In [19]: a.tolist()  # 将NumPy数组转换成python中的list

Out[19]: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

3. 常用函数

In [22]: c = eye(2)  # 构建2维单位矩阵

In [23]: c

Out[23]:

array([[ 1.,  0.],

       [ 0.,  1.]])

In [25]: savetxt("eye.txt", c)  # 将矩阵保存到文件中

In [5]: c, v = loadtxt("test.csv", delimiter=",", usecols=(0, 1), unpack=True)  # 分隔符为, usecols为元组表示要获取的字段数据(每一行的第零段和第一段), unpack为True表示拆分存储不同列的数据, 分别存入c, v

In [12]: c

Out[12]: array([ 1.,  4.,  7.])

In [13]: mean(c)  # 计算矩阵c的mean均值

Out[13]: 4.0

In [14]: np.max(c)  # 求数组中的最大值

Out[14]: 7.0

In [15]: np.min(c)  # 求数组中的最小值

Out[15]: 1.0

In [16]: np.ptp(c)  # 返回数组最大值和最小值之间的差值

Out[16]: 6.0

In [18]: numpy.median(c)  # 找到数组中的中位数(中间两个数的平均值)

Out[18]: 4.0

In [19]: numpy.var(c)  # 计算数组的方差

Out[19]: 6.0

In [20]: numpy.diff(c)  # 返回相邻数组元素的差值构成的数组

Out[20]: array([ 3.,  3.])

In [21]: numpy.std(c)  # 计算数组的标准差

Out[21]: 2.4494897427831779

In [22]: numpy.where(c > 3)  # 返回满足条件的数组元素的下标组成的数组

Out[22]: (array([1, 2]),)
Python 相关文章推荐
Python原始字符串(raw strings)用法实例
Oct 13 Python
Python中的作用域规则详解
Jan 30 Python
Python max内置函数详细介绍
Nov 17 Python
python executemany的使用及注意事项
Mar 13 Python
pycharm安装图文教程
May 02 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
python银行系统实现源码
Oct 25 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
Python中转换角度为弧度的radians()方法
May 18 #Python
Python Matplotlib库入门指南
May 18 #Python
解读Python中degrees()方法的使用
May 18 #Python
python修改操作系统时间的方法
May 18 #Python
Python中的hypot()方法使用简介
May 18 #Python
Python批量转换文件编码格式
May 17 #Python
Python实现批量下载文件
May 17 #Python
You might like
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php图片裁剪函数
2018/10/31 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
jQuery实现评论模块
2020/08/19 jQuery
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python和php学习哪个更有发展
2020/06/17 Python
10个示例带你掌握python中的元组
2020/11/23 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
2014学年自我鉴定
2014/02/23 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
森林防火标语
2014/06/23 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书
居安思危观后感
2015/06/11 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技