NumPy数值计算基础
NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
ndarray:储存单一数据类型的多维数组。
ufunc:一种能够对数组进行处理的函数。
import numpy as np
datal =[1,3,5,7] #列表
w1 =np.array(datal)
print('w1:',w1)
data2 =(2,4,6,8) #元组
w2 = np.array(data2)
print('w2:',w2)
data3 =[[1,2,3,4],[5,6,7,8]] #嵌套列表
w3 = np.array(data3)
print('w3:',w3)
1. 专门创建数组的函数
linspace函数:创建等差一维数组,接收元素数量作为参数。
格式:np.linspace(start, stop, num, endpoint,retstep=False, dtype=None)
import numpy as np
from numpy import e
datal = np.linspace(e,1,5)
print(datal)
2. 专门创建数组的函数
zeros函数:创建指定长度或形状的全0数组。
格式:np.zeros(shape, dtype=float, order='C')
import numpy as np
datal = np.zeros(4)
print(datal)
data2 = np.zeros([3,3])
print(data2)
3. 专门创建数组的函数
ones函数:创建指定长度或形状的全1数组。
格式:np.ones(shape, dtype=None, order='C')
import numpy as np
datal = np.ones(5)
print(datal)
data2 = np.ones([2,3])
print(data2)
4. 专门创建数组的函数
diag函数:创建一个对角矩阵。
格式:np.diag(v, k=0)
import numpy as np
datal = np.diag([1,2,3,4])
print(datal)
(2)ndarray对象属性和数据转换
ndarray对象属性及其说明:
属性 | 说明 |
ndim | 返回数组的轴的个数 |
shape | 返回数组的维度 |
size | 返回数组元素个数 |
dtype | 返回数据类型 |
itemsize | 返回数组中每个元素的字节大小 |
import numpy as np #查看数组的属性
data = np.array([[1,2,3],[4,5,6]])
print('秩为:',data.ndim)
print('形状为:',data.shape)
print('元素个数为:',data.size)
data.shape = 3,2 #设置数组的shape属性
print(data)
arr1 = np.arange(6)
print(arr1.dtype)
arr2 = arr1.astype(np.float64)
print(arr2.dtype)
reshape方法:
对于定义好的数组,可以通过reshape方法改变其数据维度。
格式:
np.reshape(a, newshape, order='C')
import numpy as np
datal = np.arange(8)
print(datal)
数组的索引和切片
(1)一维数组的索引和切片
import numpy as np
data = np.arange(10)
print(data)
print(data[2])
print(data[-1])
print(data[1:4])
数组的运算
(1)数组和标量间的运算
扩展库numpy中的数组支持与标量的加、减、乘、除、幂运算,计算结果为一个新数组,其中每个元素为标量与原数组中每个元素进行计算的结果。
import numpy as np
x = np.array((1, 2, 3, 4, 5)) #创建数组对象
print (x)
y = x * 2 #数组与数值相乘,返回新数组
print (y)
y= x + 2 #数组与数值相加
print (y)
y = x ** 3 #幂运算
print (y)
print(y)
数组的运算
(2)ufunc函数
ufunc函数全称为通用函数,是一种能够对数组中的所有元素进行操作的函数。
常用的ufunc函数运算
四则运算:
对数组中的每个元素分别进行四则运算。
比较运算:
比较运算返回的结果是一个布尔数组,每个元素为数组对应元素的比较结果。
逻辑运算:
np.any函数表示逻辑“or”,np.all函数表示逻辑“and”,运算结果为布尔值。
import numpy as np
x = np.array([1,2,3])
y= np.array([4,5,6])
print('数组相加结果:',x+y)
print('数组相减结果:',x-y)
print('数组相乘结果:',x*y)
print('数组幂运算结果:',x**y)
数组也支持使用包含True/False的等长数组作为下标来访问其中的元素,返回True对应位置上元素组成的数组。
import numpy as np
x = np.random.rand(10) #包含10个随机数的数组
print(x)
print(x>0.5) #比较数组中每个元素值是否大于8.5
print(x[x>0.5]) #获取数组中大于0.5的元素
ufunc函数的广播机制
广播(broadcasting)是指不同形状的数组之间执行算
术运算的方式。需要遵循4个原则:
•让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在左边加1补齐。如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度进行扩展,以匹配另一个数组的形状。输出数组的shape是输入数组shape的各个轴上的最大值。如果两个数组的形状在任何一个维度上都不匹配,并且没有任何一个维度等于1,则引发异常。
Numpy中的数据统计与分析
(1)排序
sort函数:sort函数对数据直接进行排序,调用改变原始数组,无返回值。
格式:numpy.sort(a, axis, kind, order)
import numpy as np
data = np.array([7,9,5,2,9,4,3,1,4,3])
print('原数组:',data)
data.sort()
print('排序后:',data)
argsort函数:根据一个或多个键值对数据集进行排序,返回的是数组值从小到大的索引值。
import numpy as np
data = np.array([7,9,5,2,9,4,3,1,4,3])
print('原数组:', data)
print('排序后:', data.argsort()) #返回值为数组排序后的下标排列
(2)Numpy中的数据统计与分析
重复数据与去重
unique函数:去除数组重复的元素,并按元素由小到大返回一个新的无元素重复的元组或者列表。
import numpy as np
data = np.array([3,5,2,3,2])
print('原数组:',data)
print('去重后的数组:',np.unique(data)) #去除数组重复的元素,并按元素由小到大返回一个新的无元素
#重复的元组或者列表。
tile函数:将一个数组重复一定次数形成一个新的数组。语法格式如下:np.tile(A, reps)
import numpy as np
data = np.arange(5)
print('原数组:',data)
wy = np.tile(data,3) #将一个数组重复一定次数形成一个新的数组
print('重复数据处理:\n',wy)
import numpy as np
data = np.arange(15).reshape(3,5)
print('创建的数组:\n',data)
print('数组的和:',np.sum(data))
print('数组纵轴的和:',np.sum(data,axis = 0))
print('数组横轴的和:',np.sum(data,axis = 1))
print('数组的均值:',np.mean(data))
print('数组横轴的均值:',np.mean(data,axis = 1))
print('数组的标准差:',np.std(data))
print('数组横轴的标准差:',np.std(data,axis = 1))
NumPy数值计算基础
NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
ndarray:储存单一数据类型的多维数组。
ufunc:一种能够对数组进行处理的函数。
import numpy as np
datal =[1,3,5,7] #列表
w1 = np.array(datal)
print('w1:',w1)
data2 =(2,4,6,8) #元组
w2 = np.array(data2)
print('w2:',w2)
data3 =[[1,2,3,4],[5,6,7,8]] #嵌套列表
w3 = np.array(data3)
print('w3:',w3)