Numpy 数组操作


NumPy是一个基于Python的科学计算库,能够为Python提供数组对象、矩阵运算、数值分析等功能,很多科学计算和数据分析都需要使用NumPy库。本文主要介绍NumPy数组的操作。

创建NumPy数组

创建NumPy数组有多种方式,最常用的是使用numpy.array()函数和numpy.zeros()函数。

  1. numpy.array(): 从python列表或元祖中获得Numpy数组
    import numpy as np
    
    a = np.array([1, 2, 3])
    print(a) # [1 2 3]
    
  2. numpy.zeros(): 创建零数组
    b = np.zeros((3, 3))
    print(b) # [[0. 0. 0.], [0. 0. 0.], [0. 0. 0.]]
    

数组切片和索引

NumPy数组可以使用切片和索引进行访问和修改。

  1. 切片
    c = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(c[:2, 1:]) # [[2 3] [5 6]]
    
  2. 索引
    d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(d[1, 2]) # 6
    

数组形状操作

  1. ndarray.shape:数组形状
    e = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(e.shape) # (3, 3)
    
  2. ndarray.reshape:改变数组形状
    f = np.array([[1, 2, 3], [4, 5, 6]])
    print(f.reshape(3, 2)) #[[1 2] [3 4] [5 6]]
    

数组类型操作

  1. ndarray.dtype:数组数据类型
    g = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64)
    print(g.dtype) # float64
    
  2. ndarray.astype:改变数组数据类型
    h = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float64)
    print(h.astype(np.int32)) # [[1 2 3] [4 5 6]]
    

数组运算

  1. 简单的算术运算:
    i = np.array([[1, 2, 3], [4, 5, 6]])
    j = np.array([[2, 3, 4], [5, 6, 7]])
    print(i + j) # [[ 3  5  7] [ 9 11 13]]
    print(i - j) # [[-1 -1 -1] [-1 -1 -1]]
    print(i * j) # [[ 2  6 12] [20 30 42]]
    
  2. 矩阵乘法(@运算符):
    k = np.array([[1, 2], [3, 4]])
    l = np.array([[5, 6], [7, 8]])
    print(k @ l) # [[19 22] [43 50]]
    

高级numpy操作

  1. 数组级别的转置:
    m = np.array([[1, 2, 3], [4, 5, 6]])
    print(m.T) # [[1 4] [2 5] [3 6]]
    
  2. 数组堆叠:
    n = np.array([[1, 2], [3, 4]])
    o = np.array([[5, 6], [7, 8]])
    print(np.vstack((n,o))) # [[1 2] [3 4] [5 6] [7 8]]
    

总之,NumPy是一个强大的科学计算库,提供了各种数组操作和运算,可以方便地处理基于数组的数据分析和科学计算问题,有助于提高数据分析和科学计算的效率。