必知必会!使用NumPy对数组进行拆分

使用NumPy对数组进行拆分是一种高效且灵活的数据处理方式。NumPy提供了多种函数,如numpy.split()numpy.hsplit(), 和 numpy.vsplit(),使得数组可以根据不同的需求进行拆分。这些函数能够精确控制拆分的数量和位置,满足不同的数据处理和分析需求。例如,numpy.split()可以按照指定的份数或索引位置将数组分割成多个子数组;而numpy.hsplit()numpy.vsplit()则分别用于沿数组的水平和垂直方向进行拆分。通过这些拆分操作,用户可以轻松地将复杂的数据集划分为更小的、更易于管理的部分,从而简化数据处理流程,提高数据处理效率。​​​​​​​

1.np.vsplit():垂直拆分,需要等分

# 导包import numpy as np# 创建一个6行4列的二维数组n = np.random.randint(0,100,size=(6,4))n# 执行结果array([[11, 47, 82, 13],       [17, 66, 24, 53],       [84, 10, 72, 20],       [83, 33,  7, 23],       [19, 67, 13, 19],       [70, 50, 39, 81]])# np.vsplit:垂直拆分,需要等分np.vsplit(n,3)    # 平均拆成3份# 执行结果[array([[11, 47, 82, 13],        [17, 66, 24, 53]]), array([[84, 10, 72, 20],        [83, 33,  7, 23]]), array([[19, 67, 13, 19],        [70, 50, 39, 81]])]        # 可以按照指定的位置拆分:(0-1),(1-2),(2-4),(4-最后)np.vsplit(n,(1,2,4))# 执行结果[array([[11, 47, 82, 13]]), array([[17, 66, 24, 53]]), array([[84, 10, 72, 20],        [83, 33,  7, 23]]), array([[19, 67, 13, 19],        [70, 50, 39, 81]])]

2.np.hsplit():水平方向拆分

# 水平方向拆分np.hsplit(n,2)# 执行结果[array([[11, 47],        [17, 66],        [84, 10],        [83, 33],        [19, 67],        [70, 50]]), array([[82, 13],        [24, 53],        [72, 20],        [ 7, 23],        [13, 19],        [39, 81]])]# 可以按照指定的位置拆分:(0-1),(1-2),(2-最后)np.hsplit(n,(1,2))# 执行结果[array([[11, 47],        [17, 66],        [84, 10],        [83, 33],        [19, 67],        [70, 50]]), array([[82, 13],        [24, 53],        [72, 20],        [ 7, 23],        [13, 19],        [39, 81]])]# 可以按照指定的位置拆分:(0-1),(1-2),(2-最后)np.hsplit(n,(1,2))# 执行结果[array([[11],        [17],        [84],        [83],        [19],        [70]]), array([[47],        [66],        [10],        [33],        [67],        [50]]), array([[82, 13],        [24, 53],        [72, 20],        [ 7, 23],        [13, 19],        [39, 81]])]

3.np.split():可以做水平或垂直拆分

# split:可以做水平或垂直拆分,axis=0 行,axis=1 列# 默认按行拆分np.split(n,2)# 执行结果[array([[11, 47, 82, 13],        [17, 66, 24, 53],        [84, 10, 72, 20]]), array([[83, 33,  7, 23],        [19, 67, 13, 19],        [70, 50, 39, 81]])]        # 按行拆分np.split(n,2,axis=0)# 执行结果[array([[11, 47, 82, 13],        [17, 66, 24, 53],        [84, 10, 72, 20]]), array([[83, 33,  7, 23],        [19, 67, 13, 19],        [70, 50, 39, 81]])]        # 按列拆分np.split(n,2,axis=1)# 执行结果[array([[11, 47],        [17, 66],        [84, 10],        [83, 33],        [19, 67],        [70, 50]]), array([[82, 13],        [24, 53],        [72, 20],        [ 7, 23],        [13, 19],        [39, 81]])]

4.案例:把图片拆分​​​​​​​

# 数据分析三剑客import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# python.png# 图片:其实时数字组成的,三维数组# RGB:红Red,绿Green,蓝Blue# RGB范围:0-255# plt.imread:读取图片的数据pyimg = plt.imread("python.png")pyimgprint(pyimg.shape)# 执行结果(539, 1080, 4)# 切片img = pyimg[:-1]img.shape# 执行结果(538, 1080, 4)plt.imshow(img)# 垂直拆分img1 = np.split(img,2)img1# 执行结果[array([[[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         ...,         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]]], dtype=float32), array([[[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         ...,         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]],         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]],         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]]], dtype=float32)]         # 图片上半部分plt.imshow(img1[0])# 图片下半部分plt.imshow(img1[1])# 水平拆分成5等份img2 = np.split(img,5,axis=1)img2# 执行结果[array([[[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ]],         [[0.09019608, 0.15294118, 0.24313726, 1.        ],         [0.05882353, 0.12156863, 0.21176471, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ]],         ...,         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.11372549, 0.29803923, 0.64705884, 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ]],         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.11372549, 0.29803923, 0.64705884, 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ]],         [[0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         ...,         [0.11372549, 0.29803923, 0.64705884, 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ]]], dtype=float32), array([[[0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         ...,         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ]],         [[0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         ...,         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ]],         [[0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         ...,         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ]],         ...,         [[0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.12156863, 0.29803923, 0.654902  , 1.        ],         ...,         [0.5294118 , 0.72156864, 0.9490196 , 1.        ],         [0.53333336, 0.7294118 , 0.95686275, 1.        ],         [0.5254902 , 0.7254902 , 0.9607843 , 1.        ]],         [[0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.12156863, 0.29803923, 0.654902  , 1.        ],         ...,         [0.53333336, 0.7254902 , 0.9529412 , 1.        ],         [0.5372549 , 0.73333335, 0.9607843 , 1.        ],         [0.5254902 , 0.7254902 , 0.9607843 , 1.        ]],         [[0.11764706, 0.29411766, 0.6509804 , 1.        ],         [0.12156863, 0.29803923, 0.654902  , 1.        ],         [0.1254902 , 0.3019608 , 0.65882355, 1.        ],         ...,         [0.5372549 , 0.7294118 , 0.95686275, 1.        ],         [0.54509807, 0.7372549 , 0.96862745, 1.        ],         [0.53333336, 0.73333335, 0.96862745, 1.        ]]], dtype=float32), array([[[0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         ...,         [0.10196079, 0.21176471, 0.39607844, 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ]],         [[0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         ...,         [0.10196079, 0.21176471, 0.39607844, 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ]],         [[0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         [0.11372549, 0.21960784, 0.40392157, 1.        ],         ...,         [0.10196079, 0.21176471, 0.39607844, 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ]],         ...,         [[0.5176471 , 0.7176471 , 0.9647059 , 1.        ],         [0.5137255 , 0.7254902 , 0.972549  , 1.        ],         [0.52156866, 0.73333335, 0.9843137 , 1.        ],         ...,         [0.05882353, 0.19607843, 0.41568628, 1.        ],         [0.06666667, 0.19215687, 0.41568628, 1.        ],         [0.07058824, 0.19607843, 0.41960785, 1.        ]],         [[0.52156866, 0.72156864, 0.96862745, 1.        ],         [0.5176471 , 0.7294118 , 0.9764706 , 1.        ],         [0.5254902 , 0.7372549 , 0.9882353 , 1.        ],         ...,         [0.05882353, 0.19607843, 0.42352942, 1.        ],         [0.06666667, 0.19215687, 0.42352942, 1.        ],         [0.07058824, 0.19607843, 0.42745098, 1.        ]],         [[0.5254902 , 0.7254902 , 0.972549  , 1.        ],         [0.52156866, 0.73333335, 0.98039216, 1.        ],         [0.5294118 , 0.7411765 , 0.99215686, 1.        ],         ...,         [0.0627451 , 0.19607843, 0.42352942, 1.        ],         [0.07058824, 0.19607843, 0.42745098, 1.        ],         [0.07058824, 0.19607843, 0.42745098, 1.        ]]], dtype=float32), array([[[0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.09803922, 0.17254902, 0.2901961 , 1.        ]],         [[0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.09803922, 0.17254902, 0.2901961 , 1.        ]],         [[0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         [0.10196079, 0.21176471, 0.4       , 1.        ],         ...,         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.10196079, 0.1764706 , 0.29411766, 1.        ],         [0.09803922, 0.17254902, 0.2901961 , 1.        ]],         ...,         [[0.07058824, 0.19607843, 0.42745098, 1.        ],         [0.07058824, 0.1882353 , 0.42352942, 1.        ],         [0.06666667, 0.18431373, 0.41960785, 1.        ],         ...,         [0.23921569, 0.5176471 , 0.8627451 , 1.        ],         [0.23921569, 0.5176471 , 0.8627451 , 1.        ],         [0.23921569, 0.5176471 , 0.8627451 , 1.        ]],         [[0.07058824, 0.19607843, 0.42745098, 1.        ],         [0.07058824, 0.1882353 , 0.42352942, 1.        ],         [0.06666667, 0.18431373, 0.41960785, 1.        ],         ...,         [0.1882353 , 0.4862745 , 0.8627451 , 1.        ],         [0.1882353 , 0.4862745 , 0.8627451 , 1.        ],         [0.1882353 , 0.4862745 , 0.8627451 , 1.        ]],         [[0.07058824, 0.19607843, 0.42745098, 1.        ],         [0.07058824, 0.1882353 , 0.42352942, 1.        ],         [0.06666667, 0.18431373, 0.41960785, 1.        ],         ...,         [0.16470589, 0.47843137, 0.8666667 , 1.        ],         [0.16470589, 0.47843137, 0.8666667 , 1.        ],         [0.16470589, 0.47843137, 0.8666667 , 1.        ]]], dtype=float32), array([[[0.09411765, 0.16862746, 0.28627452, 1.        ],         [0.10196079, 0.1764706 , 0.2901961 , 1.        ],         [0.10196079, 0.18039216, 0.28627452, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09411765, 0.16862746, 0.28627452, 1.        ],         [0.10196079, 0.1764706 , 0.2901961 , 1.        ],         [0.10196079, 0.18039216, 0.28627452, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         [[0.09411765, 0.16862746, 0.28627452, 1.        ],         [0.10196079, 0.1764706 , 0.2901961 , 1.        ],         [0.10196079, 0.18039216, 0.28627452, 1.        ],         ...,         [0.05490196, 0.11764706, 0.20784314, 1.        ],         [0.05098039, 0.11372549, 0.20392157, 1.        ],         [0.08235294, 0.14509805, 0.23529412, 1.        ]],         ...,         [[0.23921569, 0.5176471 , 0.8627451 , 1.        ],         [0.23921569, 0.5176471 , 0.8627451 , 1.        ],         [0.23921569, 0.5176471 , 0.8627451 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]],         [[0.1882353 , 0.4862745 , 0.8627451 , 1.        ],         [0.1882353 , 0.4862745 , 0.8627451 , 1.        ],         [0.1882353 , 0.4862745 , 0.8627451 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]],         [[0.16470589, 0.47843137, 0.8666667 , 1.        ],         [0.16470589, 0.47843137, 0.8666667 , 1.        ],         [0.16470589, 0.47843137, 0.8666667 , 1.        ],         ...,         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ],         [0.0627451 , 0.25882354, 0.5294118 , 1.        ]]], dtype=float32)]         # 显示第三部分图片plt.imshow(img2[2])

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾飞开源

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值