numpy均匀分布_Python计算类库(Numpy)
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)相关推荐
- python方差的计算公式_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...
使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...
- 为什么python安装不了numpy库_python 安装与numpy matplotlib 等库安装
1.下载并安装Python3.4 在官网下载即可:Python官网 2.安装pip (1)查看是否已安装pip 进入cmd命令窗口,输入pip --version ,查看是否已安装pip,如果出现下图 ...
- numpy安装_Python进阶之NumPy快速入门(一)
前言 NumPy是Python的一个扩展库,负责数组和矩阵运行.相较于传统Python,NumPy运行效率高,速度快,是利用Python处理数据必不可少的工具. 这个NumPy快速入门系列分为四篇,包 ...
- python计算样本方差_Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算...
使用numpy可以做很多事情,在这篇文章中简单介绍一下如何使用numpy进行方差/标准方差/样本标准方差/协方差的计算. variance: 方差 方差(Variance)是概率论中最基础的概念之一, ...
- python numpy教程_Python中的Numpy入门教程
这篇文章主要介绍了 Python 中的 Numpy 入门教程,着重讲解了矩阵中的数组操作 , 需要的 朋友可以参考下 1 . Numpy 是什么 很简单, Numpy 是 Python 的一个科学计算 ...
- python中导入numpy库_python中的Numpy库
导入numpy库: import numpy as np python的一个科学计算库的一个基础包,包含了强大的N维数组对象和向量运算 数组创建,可以使用array函数从常规的python列表和或元组 ...
- python如何存储numpy数组_python – 如何将numpy数组作为对象存储在pandas数据框中?...
我有一系列图像,存储在CVS文件中,每个图像一个字符串,该字符串是9216空格分隔整数的列表.我有一个函数将其转换为96×96 numpy数组. 我希望将这个numpy数组存储在我的数据帧的一列而不是 ...
- python np dot函数_python科学计算之Numpy
Numpy的组成与功能 Numpy(Numeric Python)可以被理解为一个用python实现的科学计算包,包括: 1.强大的N维数组对象Array: 2.成熟的函数库: 3.实用的线性代数.傅 ...
- python的科学计算库有哪些_Python科学计算库-Numpy
NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...
最新文章
- JavaScript模块化开发整理
- 如何在柱状图中点连线_练瑜伽,如何放松僵硬紧张的髂腰肌?
- java getjsonarray_无法在Java中访问getJSONArray
- 解决crontab 定时任务加载失败
- cf451E. Devu and Flowers(产生不同多重集数量)
- 低代码:如何保障开发安全性?
- CCF202009-2 风险人群筛查
- 一个光标绘制问题的解决过程
- 包装类(Wrapper)的使用
- 给DataGridView 的单元格 赋空值
- Python Web 框架-Django day06
- 永别了,91网站!宣布永久关闭
- KK(凯文·凯利) 给年轻人的68条建议
- 流行计算机病毒和造成的危害,计算机病毒的危害主要造成程序和数据的破坏
- matlab 直和,MATLAB求空间sdm的直接和间接效应
- NIO学习笔记——缓冲区(Buffer)详解
- Java面试题:GC 是什么? 为什么要有GC?
- 485传感器接入串口交换机采集方案
- 一款好用的程序员切图标注神器
- 标签打印软件如何连接SQL Server数据库打印产品标签
热门文章
- Java黑皮书课后题第4章:*4.9(给出字符的Unicode码)编写程序,得到一个字符的输入,然后显示其Unicode值
- Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
- C语言学习之求一个3X3的整型矩阵对角线元素之和。
- 为什么(12)式,km不能直接相乘?而要让域k先乘一个代数A里面的单位元,再作用在群M上呢?...
- 软件保障与测试课程实践记录:贪吃蛇小程序
- 移动端rem适配-JS
- 打印数组所有排列 python
- 使用SharePoint Server 2007搜索对象模型编程创建搜索查询
- 一个Delphi写的DES算法, 翻译成C#
- SQL注入_1-6_user-agent注入