Python计算类库(Numpy)

Python计算库(Numpy)思维导图

1. Numpy是什么?

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。 NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能

这个库的前身是1995年就开始开发的一个用于数组运算的库。经过了长时间的发展,基本上成了绝大部分Python科学计算的基础包,当然也包括所有提供Python接口的深度学习框架

2. 为什么使用Numpy?

a) 便捷:

  • 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多。这是因为NumPy能够直接对数组和矩阵进行操作,可以省略很多循环语句,其众多的数学函数也会让编写代码的工作轻松许多

b) 性能:

  • NumPy中数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构(如嵌套的list容器)。其能够提升的性能是与数组中元素的数目成比例的。对于大型数组的运算,使用NumPy的确很有优势。对于TB级的大文件,NumPy使用内存映射文件来处理,以达到最优的数据读写性能

c) 高效:

  • NumPy的大部分代码都是用C语言写成的,这使得NumPy比纯Python代码高效得多

注意:

  • NumPy也有其不足之处,由于NumPy使用内存映射文件以达到最优的数据读写性能,而内存的大小限制了其对TB级大文件的处理;此外,NumPy数组的通用性不及Python提供的list容器。因此,在科学计算之外的领域,NumPy的优势也就不那么明显

3. Numpy的安装:

(1)官网安装:http://www.numpy.org/

(2)pip 安装:pip install numpy

(3)LFD安装,针对windows用户:http://www.lfd.uci.edu/~gohlke/pythonlibs/

(4)Anaconda安装(推荐),Anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便。下载地址:https://www.anaconda.com/download/

4. numpy 基础:

NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。NumPy的数组类被称作 ndarray(矩阵也叫数组) 。通常被称作数组。常用的ndarray对象属性有:ndarray.ndim(数组轴的个数,轴的个数被称作秩),ndarray.shape(数组的维度。这是一个指示数组在每个维度上大小的整数元组。

Numpy的数据类型:

例如:一个n行m列的矩阵:

  • .ndim
  • .shape
  • .size
  • .dtype

Numpy内置的特征码:

  • int8, int16, int32,int64 可以由字符串’i1’, ‘i2’,’i4’, ‘i8’代替,其余的以此类推

5. 创建数组并查看其属性:

(1) 用np.array从python列表和元组创建数组:

  • 例:

    • import numpy as np a = np.array([[1,2,3], [4, 5, 6]], dtype=int) print(a.shape) # a.ndim, a.size, a.dtype
  • 例:
    • import numpy as np a = np.array([(1,2,3), (4, 5, 6)], dtype=float) print(a.shape) # a.ndim, a.size, a.dtype

(2) 用np.arange().reshape()创建数组:

  • 例:

    • import numpy as np a = np.arange(10).reshape(2, 5) # 创建2行5列的二维数组,

也可以创建三维数组,
a = np.arange(12).reshape(2,3,2)
print(a)

(3)用np.random.randint(最小值,最大值,个数,类型).reshape(#,#)

  • 左闭右开
  • 随机整数

(4)用np.random.rand(#).reshape(#,#)

  • 左闭右开
  • [0,1)均匀分布(小数)

(5)用np.random.randn(#)

  • 左闭右开
  • 标准正态分布
  • 均值为0,方差为1

(6)用np.emty(#),reshape(#)

  • 固定值#生成(无限趋近于零)

(7)用np.ones(#),reshape(#)

  • 固定值1生成

(8)用np.zeros(),reshape(#)

  • 固定值0生成

(6)用np.emty(),reshape(#)

  • 固定值生成

6. 基本运算:

array.sum()

  • 所有值累加和
  • array.sum(0)
    • 每一列的累加和
  • array.sum(1)
    • 每一行的累加和

+

  • array+array

-

  • array-array

*

  • np.dot(array,array)

T

  • array.T

linalg.inv

  • np.linalg.inv(array)

7. 常用函数:

import numpy as np

array = np.random.randint(1,10,9).reshape(3,3) print(np.where(array>5,array,0))

8、索引、切片、迭代

索引:

  • import numpy as np a = arange(10)**3 a[2] a[2:5] a[:6:2] = -1000 a[ : :-1] for i in a:
  • 多维数组的索引
    • b = np.arange(20).reshape(5,4) b[2,3] b[0:5, 1] b[ : ,1] b[1:3, : ]

当少于轴数的索引被提供时,确失的索引被认为是整个切片
b[-1] #相当于b[-1,:]
b[i] 中括号中的表达式被当作 i 和一系列 : ,来代表剩下的轴。NumPy也允许你使用“点”像 b[i,...] 。
点 (…)代表许多产生一个完整的索引元组必要的分号。如果x是
秩为5的数组(即它有5个轴),那么:x[1,2,…] 等同于 x[1,2,:,:,:],x[…,3] 等同于 x[:,:,:,:,3],x[4,…,5,:] 等同 x[4,:,:,5,:].

  • 三维数组的索引:

    • c = np.arange(12).reshape(2,3,2) c[1] c[2,1] # 等价于c[2][1] c[2,1,1] # 等价于c[2][1][1]

通过数组索引
d = np.arange(10)**2 e = np.array ([3, 5, 6])

切片(起始值,结束值,最后值):

  • 实例:

    • 取第一行所有值:

      • array[0]
    • 取第一列所有值:

      • array[:,0]
    • 取第一行和第三行:

      • array[0::2,]
    • 取第二列和第四列:

      • array[::,1::2]
    • 取第一行和第三行的取第二列和第四列:

      • array[0::2,1::2]

迭代:

  • for i in range(0,array.shape[0]): for j in range (0,array.shape[1]): print(array[i][j],end="t") print()

9. 形状操作:

ravel()

  • array.ravel()

vstack()

  • np.vstack((array,array))

hstack()

  • np.hstack((array,array))

stack()

  • np.stack((array,array,axis=0))

split()

  • np.split(array,#)

hsplit()

  • np.hsplit(array,#)

vsplit()

  • np.vsplit(array,#)
关注查看往期

numpy均匀分布_Python计算类库(Numpy)相关推荐

  1. python方差的计算公式_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...

    使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...

  2. 为什么python安装不了numpy库_python 安装与numpy matplotlib 等库安装

    1.下载并安装Python3.4 在官网下载即可:Python官网 2.安装pip (1)查看是否已安装pip 进入cmd命令窗口,输入pip --version ,查看是否已安装pip,如果出现下图 ...

  3. numpy安装_Python进阶之NumPy快速入门(一)

    前言 NumPy是Python的一个扩展库,负责数组和矩阵运行.相较于传统Python,NumPy运行效率高,速度快,是利用Python处理数据必不可少的工具. 这个NumPy快速入门系列分为四篇,包 ...

  4. python计算样本方差_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...

    使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...

  5. python numpy教程_Python中的Numpy入门教程

    这篇文章主要介绍了 Python 中的 Numpy 入门教程,着重讲解了矩阵中的数组操作 , 需要的 朋友可以参考下 1 . Numpy 是什么 很简单, Numpy 是 Python 的一个科学计算 ...

  6. python中导入numpy库_python中的Numpy库

    导入numpy库: import numpy as np python的一个科学计算库的一个基础包,包含了强大的N维数组对象和向量运算 数组创建,可以使用array函数从常规的python列表和或元组 ...

  7. python如何存储numpy数组_python – 如何将numpy数组作为对象存储在pandas数据框中?...

    我有一系列图像,存储在CVS文件中,每个图像一个字符串,该字符串是9216空格分隔整数的列表.我有一个函数将其转换为96×96 numpy数组. 我希望将这个numpy数组存储在我的数据帧的一列而不是 ...

  8. python np dot函数_python科学计算之Numpy

    Numpy的组成与功能 Numpy(Numeric Python)可以被理解为一个用python实现的科学计算包,包括: 1.强大的N维数组对象Array: 2.成熟的函数库: 3.实用的线性代数.傅 ...

  9. python的科学计算库有哪些_Python科学计算库-Numpy

    NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...

最新文章

  1. JavaScript模块化开发整理
  2. 如何在柱状图中点连线_练瑜伽,如何放松僵硬紧张的髂腰肌?
  3. java getjsonarray_无法在Java中访问getJSONArray
  4. 解决crontab 定时任务加载失败
  5. cf451E. Devu and Flowers(产生不同多重集数量)
  6. 低代码:如何保障开发安全性?
  7. CCF202009-2 风险人群筛查
  8. 一个光标绘制问题的解决过程
  9. 包装类(Wrapper)的使用
  10. 给DataGridView 的单元格 赋空值
  11. Python Web 框架-Django day06
  12. 永别了,91网站!宣布永久关闭
  13. KK(凯文·凯利) 给年轻人的68条建议
  14. 流行计算机病毒和造成的危害,计算机病毒的危害主要造成程序和数据的破坏
  15. matlab 直和,MATLAB求空间sdm的直接和间接效应
  16. NIO学习笔记——缓冲区(Buffer)详解
  17. Java面试题:GC 是什么? 为什么要有GC?
  18. 485传感器接入串口交换机采集方案
  19. 一款好用的程序员切图标注神器
  20. 标签打印软件如何连接SQL Server数据库打印产品标签

热门文章

  1. Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值
  2. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
  3. C语言学习之求一个3X3的整型矩阵对角线元素之和。
  4. 为什么(12)式,km不能直接相乘?而要让域k先乘一个代数A里面的单位元,再作用在群M上呢?...
  5. 软件保障与测试课程实践记录:贪吃蛇小程序
  6. 移动端rem适配-JS
  7. 打印数组所有排列 python
  8. 使用SharePoint Server 2007搜索对象模型编程创建搜索查询
  9. 一个Delphi写的DES算法, 翻译成C#
  10. SQL注入_1-6_user-agent注入