数组分割
函数 | 数组及操作 |
---|---|
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)
图片奉上,供练习操作。
- 均匀分割
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/