NumPy是Python中非常重要的第三方库。提供的数据结构更高级与高效。
NumPy有两个重要对象:ndarray和ufunc.
ndarray对象
多维数组。

  • 创建数组
import numpy as np
a = np.array([1,2,3])#创建数组
b = np.array([[1,2],[3,4],[5,6]])
b[1,1]=10#修改数值
print(a.shape)#数组大小
print(b.dtype)#元素属性
  • 结构数组
persontype = np.dtype({
            'names': ['name', 'age' , 'Chinese','English'],
            'formats':['S32','i', 'i','f']   })
peoples = np.array([("LL",12,77,77.5),("HH",13,78,67.5)], dtype=persontype)
ages=people[:]['age']
print(np.mean(ages))
  • ufunk运算
    对数组每个元素进行函数操作。计算速度很快,用c语言实现。
  • 连续数组的创建
x1 = np.arange(1,11,2) #(初始,终值(不包括),步长)
x2 = np.linspace(1,9,5) #(初始,终值(包括),元素个数)

结果都为[1 3 5 7 9]

  • 算数运算
print(np.add(x1,x2))
print(np.subtract(x1,x2))
print(np.multiply(x1,x2))
print(np.divide(x1,x2))
print(np.power(x1,x2)) #求n次方
print(np.remainder(x1,x2)) #取余数 or np.mod(x1,x2)
  • 统计函数
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(np.amin(a)) #全部元素最小值
print(np.amin(a,0)) #纵向最小值 [1 2 3]
print(np.amin(a,1)) #横向最小值[1 4 7]
print(np.amax(a)) # 全部元素最大值
print(np.amax(a,0)) #纵向最大值 [7 8 9]
print(np.amax(a,1)) #横向最大值 [3 6 9]
print(np.ptp(a)) #最大值与最小值之差 8
print(np.ptp(a,0)) #纵向最大值与最小值之差 [6 6 6]
print(np.ptp(a,1)) #横向最大值与最小值之差[2 2 2]
print(np.percentile(a,50)) #50取中位数,0取最小值,100取最大值
print(np.percentile(a,50,0)) #纵向中位数
print(np.percentile(a,50,1)) #横向中位数
print(np.mean(a)) #平均数
print(np.median(a)) #中位数
c= np.array([1,2,3,4])
wts=np.array([1,2,3,4])
print(np.average(c)) #2.5
print(np.average(c,weights=wts)) #加权平均3.0
print(np.std(c)) #标准差是方差的算数平方根
print(np.var(c)) #方差(每个数值与平均值之差的平方求和的平均值)

注:纵向与横向是为了记忆自己规定的
默认创建的二维数组形式:
1 2 3
4 5 6
7 8 9

NumPy排序

d= np.array([[2,4,5],[3,2,1]])
print(np.sort(d)) #axis默认为1 [[2 4 5] [1 2 3]]
print(np.sort(d,0))# [[2 2 1] [3 4 5]]
print(np.sort(d,1))

练习题

第四讲 NumPy快速处理数据

相关文章:

  • 2021-10-20
  • 2022-03-09
  • 2021-05-24
  • 2021-06-24
  • 2022-02-24
  • 2021-11-28
  • 2021-05-04
  • 2021-09-21
猜你喜欢
  • 2022-02-15
  • 2022-01-22
  • 2021-12-19
  • 2022-12-23
  • 2021-10-01
  • 2021-08-16
  • 2022-02-11
相关资源
相似解决方案