Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化
reshape() 重塑, flatten()/reval() 扁平化
reshape()——>完成從低維到高維的轉(zhuǎn)換
flatten()——>完成從高維到低維的轉(zhuǎn)換 同時(shí)可以用ravel()實(shí)現(xiàn)
a. 基礎(chǔ)用法舉例
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()創(chuàng)建二維數(shù)組arr
arr=np.arange(1,25.0).reshape((4,-1)) #tips:用-1直接計(jì)算另一個(gè)參數(shù)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.]])
對其進(jìn)行進(jìn)行扁平化(打平):
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的區(qū)別
raval()進(jìn)行扁平化處理時(shí)沒有復(fù)制原來數(shù)組,只在列主序打平時(shí)復(fù)制了原數(shù)組,返回的是一個(gè)數(shù)組的視圖。
faltten()在所有情況下打平時(shí)都復(fù)制了原來的數(shù)組,分配了新的內(nèi)存。
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()不會(huì)影響到原本數(shù)組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()會(huì)影響到原本數(shù)組arr
盡量使用flatten()函數(shù)打平數(shù)組。
總結(jié)
以上是生活随笔為你收集整理的Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是三相四线制,四根线为何也称为三相电
- 下一篇: android的最新2017,我的世界2