numpy np.split、np.hsplit、np.vsplit分割数组

数组分割

函数 数组及操作
np.split 将一个数组分割为多个子数组
np.hsplit 将一个数组水平分割为多个子数组(按列)
np.vsplit 将一个数组垂直分割为多个子数组(按行)
np.dsplit 在第三个轴上进行深度切割
  • np.split(ary, indices_or_sections, axis=0)
    Params:
    indices_or_sections:一个整数N或者一个1-D数组。为N时,在axis方向上平均分割成N份。当给定一个1-D数组时,该数组必须是从小到大排序的整数元素。然后,形成切片式的区间,例如:[2, 3],会形成[:2],[2:3],[3:]三个区间,然后按照axis方向分割数据。
    Return:
    切割后的子数组
  • np.vsplit(ary, indices_or_sections)
    参数解释同上。只在第一个轴即0轴方向上切割,分割行
  • np.hsplit(ary, indices_or_sections)
    参数解释同上。只在第二个轴即1轴方向上切割,分割列

举例:
还是以一幅图片为例,生动形象。

data = cv2.resize(data,(300,300))
data.shape
(300, 300, 3)

图片奉上,供练习操作。
来源500pix

  • 均匀分割
mutltiArrs = np.split(data,3) # 分割
plt.figure() # 展示
for i, arr in enumerate(mutltiArrs,1):
    plt.subplot(3,1,i)
    plt.imshow(arr)

注意:观察图片左边的左边信息,与分割的条件对应。
在这里插入图片描述

  • 区间分割
mutltiArrs = np.split(data,[100,150,250])
plt.figure(figsize=(5,5))
for i, arr in enumerate(mutltiArrs,1):
    plt.subplot(4,1,i)
    plt.imshow(arr)

在这里插入图片描述
图片来源https://500px.me/

发布了25 篇原创文章 · 获赞 14 · 访问量 1140

猜你喜欢

转载自blog.csdn.net/A_pinkpig/article/details/105313753
今日推荐