Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化
reshape() 重塑, flatten()/reval() 扁平化
reshape()——>完成從低維到高維的轉換
flatten()——>完成從高維到低維的轉換 同時可以用ravel()實現
a. 基礎用法舉例
import numpy as np help(np.ravel)ravel(a, order=‘C’)
Return a contiguous flattened array.
a : array_like
Input array. The elements in a are read in the order specified by
order, and packed as a 1-D array.
order : {‘C’,‘F’, ‘A’, ‘K’}, optional
用reshape()創建二維數組arr
arr=np.arange(1,25.0).reshape((4,-1)) #tips:用-1直接計算另一個參數array([[ 1., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])
對其進行進行扁平化(打平):
arr_=arr.flatten() arr_2=arr.ravel()array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
b. ravel和flatten的區別
raval()進行扁平化處理時沒有復制原來數組,只在列主序打平時復制了原數組,返回的是一個數組的視圖。
faltten()在所有情況下打平時都復制了原來的數組,分配了新的內存。
array([ 50., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
array([[ 1., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])
flatten()不會影響到原本數組arr
array([ 100., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
array([[ 100., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])
ravel()會影響到原本數組arr
盡量使用flatten()函數打平數組。
總結
以上是生活随笔為你收集整理的Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是三相四线制,四根线为何也称为三相电
- 下一篇: android的最新2017,我的世界2