NumPy数值计算基础
NumPy是Python的一种开源的数值计算扩展库。它包含很多功能,如创建n维数组(矩阵)、对数组进行函数运算、数值积分等。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:
ndarray:储存单一数据类型的多维数组。
ufunc:一种能够对数组进行处理的函数。
import numpy as np
datal =[1,3,5,7] #列表
w1 = np.array(data1)
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)
专门创建数组的函数
linspace函数:创建等差一维数组,接收元素数量作为参数。
格式:np.linspace(start, stop, num, endpoint,
retstep=False, dtype=None)
import numpy as np datal = np.linspace(e,1,5) print(data1)
专门创建数组的函数
zeros函数:创建指定长度或形状的全0数组。
格式:np.zeros(shape, dtype=float, order='C')
import numpy as np datal = np.zeros(4) print(data1) data2 = np.zeros([3,3]) print(data2)
专门创建数组的函数
ones函数:创建指定长度或形状的全1数组。
格式:np.ones(shape, dtype=None, order='C')
import numpy as np datal = np.ones(5) print(data1) data2 = np.ones([2,3]) print(data2)
专门创建数组的函数
diag函数:创建一个对角矩阵。
格式:np.diag(v, k=0)
import numpy as np datal = np.diag([1,2,3,4]) print(data1)
(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函数:根据一个或多个键值对数据集进行排序,返
回的是数组值从小到大的索引值。
data = np.array([7,9,5,2,9,4,3,1,4,3])
print('原数组:', data)
print('排序后:', data.argsort())#返回值为数组排序后的下标排列
Numpy中的数据统计与分析
(2)重复数据与去重
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(data1)
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)



