Numpy学习笔记-基础与常用函数

基础部分
首先需要导入 NumPy 模块,并约定简称为 np。

一、 导入 NumPy:
import numpy as np

二、查看 NumPy 版本信息:
np.version

三、创建数组

  1. 通过列表创建一维数组:
    np.array([1, 2, 3])
    上方数组是一个秩为 1 的数组,因为它只有一个轴,而轴的长度为 3。

  2. 通过列表创建二维数组:
    np.array([(1, 2, 3), (4, 5, 6)])
    上方数组的秩为 2。第一个维度长度为 2,第二个维度长度为 3。

  3. 创建全为 0 的二维数组:
    np.zeros((3, 3))

  4. 创建全为 1 的三维数组:
    np.ones((2, 3, 4))

  5. 创建一维等差数组:
    np.arange(5)

  6. 创建二维等差数组:
    np.arange(6).reshape(2, 3)

  7. 创建单位矩阵(二维数组):
    np.eye(3)

  8. 创建等间隔一维数组:
    np.linspace(1, 10, num=6)

  9. 创建二维随机数组:
    np.random.rand(2, 3)

  10. 创建二维随机整数数组(数值小于 5):
    np.random.randint(5, size=(2, 3))

  11. 依据自定义函数创建数组:
    np.fromfunction(lambda i, j: i + j, (3, 3))

    四、数组运算

  12. 生成一维示例数组:
    a = np.array([10, 20, 30, 40, 50])
    b = np.arange(1, 6)
    a, b

  13. 一维数组加法运算:
    a + b

  14. 一维数组减法运算:
    a - b

  15. 一维数组乘法运算:
    a * b

  16. 一维数组除法运算:
    a / b

  17. 生成二维示例数组(可以看作矩阵):
    A = np.array([[1, 2], [3, 4]])
    B = np.array([[5, 6],[7, 8]])
    A, B


18.生成二维示例数组(可以看作矩阵):
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6],[7, 8]])
A, B

18. 矩阵加法运算:
A + B

19. 矩阵减法运算:
A - B

20. 矩阵元素间乘法运算:
A * B

21. 矩阵乘法运算(注意与上题的区别):
np.dot(A, B)

如果使用 np.mat 将二维数组准确定义为矩阵,就可以直接使用 * 完成矩阵乘法计算。
np.mat(A) * np.mat(B)

22. 数乘矩阵:
2 * A

23. 矩阵的转置:
A.T

24. 矩阵求逆:
np.linalg.inv(A)

五、数学函数
25. 三角函数:
np.sin(a)

26. 以自然对数函数为底数的指数函数:
np.exp(a)

27. 数组的方根的运算(开平方):
np.sqrt(a)

28. 数组的方根的运算(立方):
np.power(a, 3)

六、数组切片和索引
29. 一维数组索引:
a = np.array([1, 2, 3, 4, 5])
a[0], a[-1]

30. 一维数组切片:
a[0:2], a[:-1]

31. 二维数组索引:
a = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)])
a[0], a[-1]

32. 二维数组切片(取第 2 列):
print(a)
a[:, 1]

33. 二维数组切片(取第 2,3 行):
a[1:3, :]

七、数组属性及操作
np.ndim: 秩,维度
np.shape: 数组的维度,各维度的尺度 (2,5)
np.size: 数组元素的总个数
np.dtype: ndarray 元素的类型 dtype(‘int32’)
np.itemsize: ndarray 对象中每个元素的大小,以字节为单位
np.flags: ndarray 对象的内存信息
np.real: ndarray元素的实部
np.imag: ndarray 元素的虚部
np.data: 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。


34. 查看数组形状:
a.shape

35. 更改数组形状(不改变原始数组):
a.reshape(2, 3) # reshape 并不改变原始数组

36. 更改数组形状(改变原始数组):
a.resize(2, 3) # resize 会改变原始数组

37. 展平数组:
a.ravel()

38. 垂直拼合数组:
np.vstack((a, b))

39. 水平拼合数组:
np.hstack((a, b))

40. 沿横轴分割数组:
np.hsplit(a, 3)

41. 沿纵轴分割数组:
np.vsplit(a, 3)

  1. 返回每列最大值:
    np.max(a, axis=0)
  2. 返回每行最小值:
    np.min(a, axis=1)
  3. 返回每列最大值索引:
    np.argmax(a, axis=0)
  4. 返回每行最小值索引:
    np.argmin(a, axis=1)

    八、数组统计
  5. 统计数组各列的中位数:
    np.median(a, axis=0)
  6. 统计数组各行的算术平均值:
    np.mean(a, axis=1)
  7. 统计数组各列的加权平均值:
    np.average(a, axis=0)
  8. 统计数组各行的方差:
    np.var(a, axis=1)
  9. 统计数组各列的标准偏差:
    np.std(a, axis=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值