• 【数据分析】NumPy


    因上努力

    个人主页:丷从心·

    系列专栏:数据分析

    学习指南:Python学习指南

    果上随缘


    ndarray的创建

    np.array()方法
    import numpy as np
    
    arr = np.array([1, 2, 3])
    
    print(arr)
    print(type(arr))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [1 2 3]
    <class 'numpy.ndarray'>
    
    • 1
    • 2
    np.arange()方法
    import numpy as np
    
    arr = np.arange(6)
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [0 1 2 3 4 5]
    
    • 1
    np.zeros()方法
    import numpy as np
    
    arr = np.zeros((2, 2))
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[0. 0.]
     [0. 0.]]
    
    • 1
    • 2
    np.ones()方法
    import numpy as np
    
    arr = np.ones((2, 2))
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[1. 1.]
     [1. 1.]]
    
    • 1
    • 2
    np.full()方法
    import numpy as np
    
    arr = np.full((2, 2), 2)
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[2 2]
     [2 2]]
    
    • 1
    • 2
    np.eye()方法
    import numpy as np
    
    arr = np.eye(3)
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[1. 0. 0.]
     [0. 1. 0.]
     [0. 0. 1.]]
    
    • 1
    • 2
    • 3
    np.random模块
    np.random.random()方法
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[0.32149432 0.01896196]
     [0.62318947 0.24221268]]
    
    • 1
    • 2
    np.random.randint()方法
    import numpy as np
    
    arr = np.random.randint(0, 10, size=(2, 2))
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[6 7]
     [2 3]]
    
    • 1
    • 2
    np.random.choice()方法
    • choice()方法用于从数组或列表中随机采样
    import numpy as np
    
    arr = np.arange(6)
    
    print(np.random.choice(arr, size=(2, 3)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [[2 1 0]
     [0 2 5]]
    
    • 1
    • 2
    np.random.shuffle()方法
    • shuffle()方法用于将数组随机打乱
    import numpy as np
    
    arr = np.arange(6)
    np.random.shuffle(arr)
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [1 0 5 4 3 2]
    
    • 1

    ndarray的属性

    ndarray.dtype
    • ndarray.dtype表示数组元素的类型
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr.dtype)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    float64
    
    • 1
    ndarray.ndim
    • ndarray.ndim表示数组的维度
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr.ndim)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    2
    
    • 1
    ndarray.shape
    • ndarray.shape表示数组的各轴长度
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr.shape)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    (2, 2)
    
    • 1
    ndarray.size
    • ndarray.size表示数组的元素总数量
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr.size)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    4
    
    • 1
    ndarray.itemsize
    • ndarray.itemsize表示数组每个元素占的字节数
    import numpy as np
    
    arr = np.random.random((2, 2))
    
    print(arr.itemsize)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    8
    
    • 1

    修改ndarray的维度

    ndarray.reshape()方法
    • reshape()方法不会修改数组本身,只返回修改后的结果
    import numpy as np
    
    arr_1 = np.arange(6)
    
    arr_1.reshape((2, 3))
    print(arr_1)
    
    arr_2 = arr_1.reshape((2, 3))
    print(arr_2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [0 1 2 3 4 5]
    [[0 1 2]
     [3 4 5]]
    
    • 1
    • 2
    • 3
    ndarray.resize()方法
    • resize()方法修改数组本身,没有返回值
    import numpy as np
    
    arr = np.arange(6)
    arr.resize((2, 3))
    
    print(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [[0 1 2]
     [3 4 5]]
    
    • 1
    • 2
    ndarray.flatten()方法
    • flatten()方法用于将多维数组转变为一维数组
    import numpy as np
    
    arr = np.arange(6)
    arr.resize((2, 3))
    
    print(arr.flatten())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [0 1 2 3 4 5]
    
    • 1

    ndarray与数的运算

    import numpy as np
    
    arr = np.random.random((3, 4))
    arr *= 10
    
    print(arr.round(2))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [[6.61 5.87 3.59 9.65]
     [9.91 5.98 2.7  5.72]
     [2.76 3.68 2.4  2.79]]
    
    • 1
    • 2
    • 3
    • round()方法用于修改保留小数的位数

    ndarray与ndarray的运算

    import numpy as np
    
    arr_1 = np.array([[1, 2, 3],
                      [4, 5, 6],
                      [7, 8, 9]])
    
    arr_2 = np.array([[1, 2, 3],
                      [4, 5, 6],
                      [7, 8, 9]])
    
    print(arr_1 * arr_2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [[ 1  4  9]
     [16 25 36]
     [49 64 81]]
    
    • 1
    • 2
    • 3
    import numpy as np
    
    arr_1 = np.random.randint(0, 10, size=(3, 4))  # 3 行 4 列
    arr_2 = np.random.randint(0, 10, size=(3, 1))  # 3 行 1 列
    
    arr_3 = arr_1 - arr_2
    
    print(arr_1)
    print(arr_2)
    print(arr_3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    [[9 5 1 6]
     [4 4 9 5]
     [9 0 7 3]]
    [[3]
     [7]
     [8]]
    [[ 6  2 -2  3]
     [-3 -3  2 -2]
     [ 1 -8 -1 -5]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    import numpy as np
    
    arr_1 = np.random.randint(0, 10, size=(3, 4))  # 3 行 4 列
    arr_2 = np.random.randint(0, 10, size=(1, 4))  # 1 行 4 列
    
    arr_3 = arr_1 - arr_2
    
    print(arr_1)
    print(arr_2)
    print(arr_3)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    [[0 1 1 8]
     [3 3 6 3]
     [4 9 8 6]]
    [[3 5 9 0]]
    [[-3 -4 -8  8]
     [ 0 -2 -3  3]
     [ 1  4 -1  6]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ndarray索引与切片

    ndarray索引
    import numpy as np
    
    arr = np.array([[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]])
    
    print(arr[0])  # 打印第 0 行的元素
    print(arr[0, 0])  # 打印第 0 行第 0 列的元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    [1 2 3]
    1
    
    • 1
    • 2
    ndarray切片
    import numpy as np
    
    arr = np.array([[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]])
    
    print(arr[:2])  # 打印第 0 ~ 1 行的元素
    print(arr[:2, :2])  # 打印第 0 ~ 1 行的第 0 ~ 1 列的元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    [[1 2 3]
     [4 5 6]]
    [[1 2]
     [4 5]]
    
    • 1
    • 2
    • 3
    • 4

    ndarray的转置

    ndarray.T
    • ndarray.T不会修改数组本身,只返回转置后的结果
    import numpy as np
    
    arr = np.arange(6).reshape((2, 3))
    
    print(arr)
    print(arr.T)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [[0 1 2]
     [3 4 5]]
    [[0 3]
     [1 4]
     [2 5]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    ndarray.transpose()方法
    • transpose()方法修改数组本身,并返回转置后的结果
    import numpy as np
    
    arr = np.arange(6).reshape((2, 3))
    
    print(arr)
    print(arr.transpose())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [[0 1 2]
     [3 4 5]]
    [[0 3]
     [1 4]
     [2 5]]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    布尔索引

    • 布尔索引是指将一个布尔数组作为数组索引,返回的数据是布尔数组中Ture对应位置的值
    import numpy as np
    
    arr_1 = np.arange(0, 12).reshape((3, 4))
    arr_2 = (arr_1 < 3) | (arr_1 > 8)
    
    print(arr_1)
    print(arr_2)
    
    print(arr_1[arr_2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [[ True  True  True False]
     [False False False False]
     [False  True  True  True]]
    [ 0  1  2  9 10 11]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

  • 相关阅读:
    不花一分钱,在 Mac 上跑 Windows(M1/M2 版)
    MySQL的数据类型
    【C++】类和对象 从入门到超神
    都要2023年了,造机器人还能搞出什么新花活?
    操作系统入门 -- CPU调度算法
    计网 | 【四 网络层】知识点及例题
    【开发技术】springboot自动化测试 【单元测试、集成测试】
    Java 基础
    【SG滤波】三阶滤波、五阶滤波、七阶滤波(Matlab代码实现)
    ssh 免密登陆
  • 原文地址:https://blog.csdn.net/from__2024_04_11/article/details/138196646