python中关于numpy库

avatar
作者
筋斗云
阅读量:0

目录

概述NumPy

一.安装NumPy

二.创建数组

三.数组基本操作

1.numpy数据类型表:

2.实操演示:

3.注意:

四.NumPy矩阵的基本操作

1.使用mat()函数创建矩阵:

2.创建一个3*3的0(零)矩阵:

3.使用random模块的rand()函数转成矩阵:

4.说明:

五.NumPy常用统计分析函数

1.数学运算函数表:

2.实操演示:

3.知识扩展:

六.总结


概述NumPy

NumPy(Numerical Python的缩写)是 Python 语言的一个第三方库。是一个开源的Python科学计算库和数值计算扩展NumPy可用来存储和处理大型矩阵,也可以很自然地使用数组和矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。这个库的前身是1995年就开始开发的一个用于数组运算的库。经过了长时间的发展,基本上成了绝大部分 Python 科学计算的基础包,当然也包括所有提供 Python 接口的深度学习框架。

一.安装NumPy

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

2.pip 安装(cmd命令提示符内运行):pip install numpy

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

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

5.PyCharm安装:(1)运行PyCharm,选择File>Settings命令>打开Settings对话框,选择Project Interoreter选项>单击添加模块。

(2)在搜索栏中输入需要添加的模块名称为NumPy,然后选择需要安装的模块,单击Install Package按钮即可安装Numpy。

6.安装验证:输入代码验证

from numpy import*#导入numpy库 print(eye(4))#生成对角矩阵

运行代码,输出结果如下:

[[1. 0. 0. 0.]  [0. 1. 0. 0.]  [0. 0. 1. 0.]  [0. 0. 0. 1.]]

二.创建数组

numpy是一个用于科学计算的Python库,它提供了一个强大的多维数组对象以及对这些数组进行操作的函数。我们可以使用numpy的array函数来创建数组。

1.使用array函数从Python列表创建一维数组:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr)

2.使用array函数从嵌套的Python列表创建多维数组:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr)

3.使用zeros函数创建指定大小的全零数组:

import numpy as np arr = np.zeros(5)  # 创建包含5个元素的一维数组 print(arr) arr = np.zeros((2, 3))  # 创建2行3列的全零二维数组 print(arr)

4.使用ones函数创建指定大小的全一数组:

import numpy as np arr = np.ones(5)  # 创建包含5个元素的一维数组 print(arr) arr = np.ones((2, 3))  # 创建2行3列的全一二维数组 print(arr)

5.使用arange函数创建一个具有指定范围和步长的数组:

import numpy as np arr = np.arange(1, 10, 2)  # 创建从1到9,步长为2的一维数组 print(arr)

6.使用linspace函数创建一个具有指定起始值、结束值和元素数量的数组:

import numpy as np arr = np.linspace(0,1,5)  # 创建一个在0到1之间分成5个等间距的元素的一维数组 print(arr)

三.数组基本操作

numpy的数据类型比python数据类型增加了更多种类的数值类型。

1.numpy数据类型表:

bool_    布尔型数据类型(存储一个字节的布尔值(True 或者 False))
int_    默认的整数类型(类似于 C 语言中的 long,int32)
intc    与 C 的 int 类型一样,一般是 int32
intp    用于索引的整数类型(类似C的size_t,通常为int32)
int8    字节(-128~127)
int16    16位整数(-32768~32767)
int32    32位整数(-2147483648~2147483647)
int64    64位整数(-9223372036854775808~9223372036854775807)
uint8    8位无符号整数(0~255)
uint16    16位无符号整数(0~65535)
uint32    32位无符号整数(0~4294967295)
uint64    64位无符号整数(0~18446744073709551615)
float_    float64 的简写
float16    半精度浮点数:1个符号位,5个指数位,10个尾数位
float32    单精度浮点数:1个符号位,8个指数位,23个尾数位
float64    双精度浮点数:1个符号位,11个指数位,52个尾数位
complex_    complex128 类型的简写
complex64    复数,表示双 32 位浮点数(实部和虚部)
complex128    复数,表示双 64 位浮点数(实部和虚部)

为了区别python数据类型,像bool、int、float、complex、str等数据类型的名称末尾都加了短下划线“_”。

2.实操演示:

(1)

np.int8(3.141)

结果为:3

(2)

np.float64(8)

结果为:8.0

(3)

np.float(True)

结果为:1.0

(4)

bool(1)

结果为:True

(5)

import numpy as np a=np.arange(8,dtype=float) print(a)

结果为:[0.1.2.3.4.5.6.7]

3.注意:

复数不能转换成为整数类型或者浮点数,否则代码报错。


四.NumPy矩阵的基本操作

NumPy库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素,虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中Numpy函数库中的matrix与MATLAB中matrices等价。

1.使用mat()函数创建矩阵:

import numpy as np a=np.mat('56,78') b=np.mat([[1,2],[3,4]]) print(a) print(b) print(type(a)) print(type(b)) n1=np.array([[1,2],[3,4]]) print(n1) print(type(n1))

2.创建一个3*3的0(零)矩阵:

import numpy as np data1=np.mat(np.zeros((3,3))) print(data1)

3.使用random模块的rand()函数创建3*3为0~1随机产生的二维数组,将其转成矩阵:

import numpy as np data1=np.mat(np.random.rand(3,3)) print(data1)

4.说明:

mat()函数只适用于二维矩阵,维数超过2以后,mat()函数就不适用了,从这一点来看array()函数更具通用性。


五.NumPy常用统计分析函数

1.数学运算函数表:

add()、subtract()、multiply()、divide() 简单的数组加、减、乘、除运算

abs() 取数组中各元素的绝对值

sqrt() 计算数组中各元素的平方根

square() 计算数组中各元素的平方

sog()、log10()、log2() 计算数组中各元素的自然对数和分别以10、2为底的对数

reciproca() 计算数组中各元素的倒数

power() 第一个数组中的元素作为底数,计算它与第二个数组中相应元素的幂

mod() 计算数组之间相应元素相除后的余数

around() 计算数组中各元素指定小数位数的四舍五入值

ceil()、floor() 计算数组中各元素向上取整和向下取整

sin()、cos()、tan() 三角函数。计算数组中角度的正弦值、余弦值和正切值

modf() 将数组各元素的小数和整数部分分割为两个独立的数组

exp() 计算数组中各元素的指数值

sign() 计算数组中各元素的符号值1(+),0,-1(-)

maximum()、fmax() 计算数组元素的最大值

minimum()、fmin() 计算数组元素的最小值

copysign(a,b) 将数组b中各元素的符号赋值给数组a对应的元素

2.实操演示:

(1)求最大最小值:

import numpy as np arr = np.array([[0,3,1,5],[2,4,6,1],[2,8,9,2]]) #求arr数组的最大值 max1 = np.amax(arr) #求arr数组垂直方向的最大值 max2 = np.amax(arr,axis=0) #求arr数组水平方向的最大值 max3 = np.amax(arr,axis=1) max4 = np.max(arr,axis=1) print(max1,max2,max3,max4) #amin函数与nanmin函数的区别 arr = np.arange(5, dtype=float) print(arr)                         # [0. 1. 2. 3. 4.] arr[3] = np.nan a = np.amin(arr) print(a)                           # 用amin函数输出NaN b = np.nanmin(arr) print(b)                           #用nanmin函数输出0.0

(2)相加、相减、相乘、相除:

import numpy as np n1=np.array([[1,2,3],[4,5,6],[7,8,9]]) n2=np.array([10,10,10]) print('两个数组相加:') print(np.add(n1,n2)) print('两个数组相减:') print(np.subtract(n1,n2)) print('两个数组相乘:') print(np.multiply(n1,n2)) print('两个数组相除:') print(np.divide(n1,n2))

(3)倒数:

import numpy as np a=np.array([0.25,1.75,2,100]) print(np.reciprocal(a))

(4)求幂:

import numpy as np n1=np.array([10,100,1000]) print(np.power(n1,3)) n2=np.array([1,2,3]) print(np.power(n1,n2))

(5)求余:

import numpy as np n1=np.array([10,20,30]) n2=np.array([4,5,-8]) print(np.mod(n1,n2))

3.知识扩展:

下面重点介绍NumPy负数取余的算法,公式如下 :r=a-n*[a//n]
其中r为余数,a是被除数,n是除数,“/1”为这运算取商时保留整数的下界,即偏向于较小的整数。根据负数取余的3种情况,举例如下:
r=30-(-8)*(30//(-8))=30-(-8)*(-4)=30-32=-2

r=-30-(-8)*(-30//(-8))=-30-(-8)*(3)=-30-24=-6

r=-30-(8)*(-30//(8))=-30-(8)*(-4)=-30+32=2

六.总结

学习numpy真的会在日常工作中提高工作效率,NumPy 也针对数组运算提供大量的数学函数。机器学习涉及到大量对数组的变换和运算,NumPy 就成了程序员必不可少的工具之一。

文章链接:https://blog.csdn.net/l3308487908/article/details/134809541icon-default.png?t=N7T8https://blog.csdn.net/l3308487908/article/details/134809541

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!