- 设置ndarry形状 {#1-设置ndarry形状}
(1) reshape {#1-reshape}
import numpy as np
arr = np.arange(12) #创建一维ndarray
print(arr)
arr1 = arr.reshape(3,4) #设置ndarry的维度
print(arr1)
(2) resize {#2-resize}
arr.resize(2,6)
print(arr)
(3) shape {#3-shape}
arr.shape = (3,4)
print(arr)
- 展平ndarry {#2-展平ndarry}
(1) ravel {#1-ravel}
arr=np.arange(12).reshape(3,4) #创建二维ndarray
print(arr)
`print(arr.ravel())
`
(2) flatten {#2-flatten}
print(arr.flatten()) #横向展开
`print(arr.flatten('F')) #纵向展开
`
- 组合ndarry {#3-组合ndarry}
(1) hstack {#1-hstack}
arr1 = np.arange(12).reshape(3,4)
print(arr1)
arr2 = arr1*3
print(arr2)
print(np.hstack((arr1,arr2))) #横向组合
(2) vstack {#2-vstack}
print(np.vstack((arr1,arr2))) #纵向组合
(3) concatenate {#3-concatenate}
concatenate函数既能实现横向组合,又能巩固实现纵向组合。
当参数axis=1时为横向组合,当参数axis=0时为纵向组合。
print(np.concatenate((arr1,arr2),axis=1)) #横向组合
print(np.concatenate((arr1,arr2),axis=0)) #纵向组合
(4) dstack 深度组合 {#4-dstack-深度组合}
即对一系列ndarry沿着纵轴方向进行层叠组合,类型于Python的内置函数zip
print(np.dstack((arr1,arr2)))
`arr3 = []
for x,y in list(zip(arr1,arr2)):
arr3.append(list(zip(x,y)))
arr3 = np.array(arr3)
print(arr3 == np.dstack((arr1,arr2)))
`
- 分割ndarray {#4-分割ndarray}
(1) hsplit {#1-hsplit}
横向分割
(2) vsplit {#2-vsplit}
纵向分割
(3) split {#3-split}
split函数也可以实现横合和纵向分割。
当参数axis=1时为横向分割,当参数axis=0时为纵向分割。
(4) dsplit 深度分割 {#4-dsplit-深度分割}
使用dsplit函数可以实现ndarry的深度分割,但被分割的ndarry必须是三维ndarry,且分割的数目必须为shape属性中下标为2的值的公约数。
arr = np.arange(12).reshape(2,2,3)
print(arr)
`print(np.dsplit(arr,3))
`