51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【Python】变换ndarry的状态

  1. 设置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)

reshape

(2) resize {#2-resize}

arr.resize(2,6)
print(arr)

resize

(3) shape {#3-shape}

arr.shape = (3,4)
print(arr)

shape

  1. 展平ndarry {#2-展平ndarry}

(1) ravel {#1-ravel}

arr=np.arange(12).reshape(3,4)   #创建二维ndarray
print(arr)
`print(arr.ravel())
`

ravel

(2) flatten {#2-flatten}

print(arr.flatten())        #横向展开
`print(arr.flatten('F'))     #纵向展开
`

flatten

  1. 组合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))) #横向组合


hstack

(2) vstack {#2-vstack}

print(np.vstack((arr1,arr2)))   #纵向组合

vstack

(3) concatenate {#3-concatenate}

concatenate函数既能实现横向组合,又能巩固实现纵向组合。

当参数axis=1时为横向组合,当参数axis=0时为纵向组合。

print(np.concatenate((arr1,arr2),axis=1))   #横向组合
print(np.concatenate((arr1,arr2),axis=0))   #纵向组合

concatenate

(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)))
`

dstack 深度组合

  1. 分割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))
`

dsplit 深度分割

赞(3)
未经允许不得转载:工具盒子 » 【Python】变换ndarry的状态