np.split 用法详解

np.split(ary, indices_or_sections, axis=0)

函数功能:

把一个数组从左到右按顺序切分

参数:

ary:要切分的数组

indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置

axis:沿着哪个维度进行切向,默认为0,横向切分

先来看一下一维数组的情况

import numpy as np

x = np.array([0,1,2,3,4,5,6,7,8])
print (np.split(x,3))
print (np.split(x,[3,5,6,9]))
print(np.split(x,[3,5,6,8]))
输出:
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]
[array([0, 1, 2]), array([3, 4]), array([5]), array([6, 7, 8]), array([], dtype=int32)]
[array([0, 1, 2]), array([3, 4]), array([5]), array([6, 7]), array([8])]

很明显,因为一维数组只有一个维度,所以切分只会在这一个维度进行。第一行输出对应indices_or_sections参数为一个整数,将数组平均分成了三份,第二行输出对应indices_or_sections参数为一个数组,此时每一次切分都会将要切分数组的前n(n=3,5,6,9)个元素切分出来,第一次n=3,进行数组切分得到array([0, 1, 2]),第二次n=5,进行数组切分得到array([3, 4]),此时数组前5个元素已经切分完毕,后续同理,最后一次n=9,切分完毕后数组所有元素已经被切分,所以最后一个array为array([], dtype=int32),对比第三行输出可以看出区别。

二维数组与一位数组情况基本相同

import numpy as np

a = np.array([[1,2,3],
     [1,2,5],
     [4,6,7]])
print (np.split(a, [2, 3],axis = 0))
print (np.split(a, [1, 2],axis = 1))
输出:
[array([[1, 2, 3],
       [1, 2, 5]]), array([[4, 6, 7]]), array([], shape=(0, 3), dtype=int32)]
[array([[1],
       [1],
       [4]]), array([[2],
       [2],
       [6]]), array([[3],
       [5],
       [7]])]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wanderer001

ROIAlign原理

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

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

打赏作者

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

抵扣说明:

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

余额充值