亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談numpy中函數(shù)resize與reshape,ravel與flatten的區(qū)別

 更新時(shí)間:2020年06月18日 10:12:03   作者:阿_波_  
這篇文章主要介紹了淺談numpy中函數(shù)resize與reshape,ravel與flatten的區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

這兩組函數(shù)中區(qū)別很是類(lèi)似,都是一個(gè)不改變之前的數(shù)組,一個(gè)改變數(shù)組本身

resize和reshape

>>> import numpy as np
>>> a = np.arange(20).reshape(4,5)
>>> a
array([[ 0, 1, 2, 3, 4],
 [ 5, 6, 7, 8, 9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19]])
>>> a.reshape(2,10)
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])
>>> a
array([[ 0, 1, 2, 3, 4],
 [ 5, 6, 7, 8, 9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19]])
>>> a.resize(2,10)
>>> a
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])

兩個(gè)函數(shù)都是改變數(shù)組的形狀,但是resize是在本身上進(jìn)行操作,reshape返回的是修改之后的參數(shù)

ravel和flatten

兩者都可以將數(shù)組轉(zhuǎn)換為一個(gè)維,

flatten(order='C')

參數(shù):{‘C',‘F',‘A',‘K'}

默認(rèn)情況下‘C'以行為主的順序展開(kāi),‘F'(Fortran風(fēng)格)意味著以列的順序展開(kāi),‘A'表示如果a在內(nèi)存中為Fortran連續(xù),則按列展開(kāi),否則以行展開(kāi),‘K'按照元素在內(nèi)存中出現(xiàn)的順序展平a。

>>> a = np.arange(6).reshape(2,3)
>>> a.flatten()
array([0, 1, 2, 3, 4, 5])
>>> a.ravel()
array([0, 1, 2, 3, 4, 5])
>>> a.flatten('F')
array([0, 3, 1, 4, 2, 5])
>>> a.ravel('F')
array([0, 3, 1, 4, 2, 5])
>>> 
>>> x = np.array([[1,2],[3,4]])
>>> a = np.arange(6).reshape(2,3)
>>> a.flatten()[...] = 1
>>> a
array([[0, 1, 2],
 [3, 4, 5]])
>>> a.ravel()[...] = 1
>>> a
array([[1, 1, 1],
 [1, 1, 1]])
>>> 

flatten不會(huì)影響原始矩陣,返回的是一個(gè)副本,但是ravel是會(huì)修改數(shù)組

補(bǔ)充知識(shí):【Numpy】維度變化reshape、ravel、flatten、transpose、resize、swapaxes

0. 首先,創(chuàng)建一個(gè)多維數(shù)組

from numpy import *
a = arange(24)

得到:

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

1.reshape 函數(shù)

b = a.reshape(2,3,4)
print(b)

得到一個(gè) 2*3*4 維的數(shù)組:

[[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]]
 
 [[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]]

可以想象成2層小洋樓,每層有 3*4 個(gè)房間

2.ravel函數(shù) 可以將多維數(shù)組展平(也就是變回一維)

c = b.ravel()
print(c)

得到一維數(shù)組

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

3.flatten函數(shù) 也是將多維數(shù)組展平,與ravel函數(shù)的功能相同,不過(guò)flatten函數(shù)會(huì)請(qǐng)求分配內(nèi)存來(lái)保存結(jié)果,而ravel函數(shù)只是返回?cái)?shù)組的一個(gè)視圖(view)

c = b.flatten()
print(c)

得到一維數(shù)組

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

4.用元組設(shè)置維度

直接用一個(gè)正整數(shù)元組來(lái)設(shè)置數(shù)組的維度

b.shape = (6,4)
print(b)

這種做法將直接改變所操作的數(shù)組,現(xiàn)在數(shù)組b變成了一個(gè) 6*4 的多維數(shù)組

[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]

5.transpose函數(shù) 將矩陣進(jìn)行轉(zhuǎn)置

d = b.transpose()
print(d)

得到 4*6 的多維數(shù)組

[[ 0 4 8 12 16 20]
 [ 1 5 9 13 17 21]
 [ 2 6 10 14 18 22]
 [ 3 7 11 15 19 23]]

6.transpose函數(shù) 將矩陣按照設(shè)定維度變換順序

b = a.reshape(2,3,4)
c = b.transpose((2,1,0))
print(c)

得到一個(gè)形狀為4*3*2的數(shù)組:

 array([[[ 0, 12],
 [ 4, 16],
 [ 8, 20]],
 [[ 1, 13],
 [ 5, 17],
 [ 9, 21]],
 [[ 2, 14],
 [ 6, 18],
 [10, 22]],
 [[ 3, 15],
 [ 7, 19],
 [11, 23]]])

7.resize函數(shù)和reshape函數(shù)的功能一樣,但resize會(huì)直接修改所操作的數(shù)組

b.resize((2,12))
print(b)

得到 2*12 的兩維數(shù)組

[[ 0 1 2 3 4 5 6 7 8 9 10 11]
[12 13 14 15 16 17 18 19 20 21 22 23]]

并且這一步不可以通過(guò)賦值來(lái)實(shí)現(xiàn),如下所示:

e = b.resize((2,12))
print(e)

此時(shí)結(jié)果為:

None

8.swapaxes(ax1,ax2) : 將數(shù)組n個(gè)維度中兩個(gè)維度進(jìn)行調(diào)換,不改變?cè)瓟?shù)組

b = a.reshape(2,3,4)
c = b.swapaxes(0,2)
print(c)

得到一個(gè)形狀為4*3*2的數(shù)組(可以和6.transpose函數(shù)進(jìn)行比較來(lái)看):

array([[[ 0, 12],
 [ 4, 16],
 [ 8, 20]],
 [[ 1, 13],
 [ 5, 17],
 [ 9, 21]],
 [[ 2, 14],
 [ 6, 18],
 [10, 22]],
 [[ 3, 15],
 [ 7, 19],
 [11, 23]]])

以上這篇淺談numpy中函數(shù)resize與reshape,ravel與flatten的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python益智游戲計(jì)算漢諾塔問(wèn)題示例

    python益智游戲計(jì)算漢諾塔問(wèn)題示例

    漢諾塔(又稱(chēng)河內(nèi)塔)問(wèn)題是源于印度一個(gè)古老傳說(shuō)的益智玩具。
    2014-03-03
  • Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法

    Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法

    這篇文章主要介紹了Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法,涉及Python隨機(jī)數(shù)與字符串的相關(guān)操作技巧,需要的朋友可以參考下
    2015-07-07
  • python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解

    python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解

    這篇文章主要介紹了python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python實(shí)現(xiàn)異常信息堆棧輸出到日志文件

    python實(shí)現(xiàn)異常信息堆棧輸出到日志文件

    今天小編就為大家分享一篇python實(shí)現(xiàn)異常信息堆棧輸出到日志文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python+selenium select下拉選擇框定位處理方法

    python+selenium select下拉選擇框定位處理方法

    今天小編就為大家分享一篇python+selenium select下拉選擇框定位處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例

    python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例

    今天小編就為大家分享一篇python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python中l(wèi)ogging日志模塊代碼調(diào)試過(guò)程詳解

    Python中l(wèi)ogging日志模塊代碼調(diào)試過(guò)程詳解

    這篇文章主要介紹了Python中l(wèi)ogging日志模塊代碼調(diào)試,今天來(lái)看看如何在代碼中定義日志,并探討日志的權(quán)限,需要的朋友可以參考下
    2023-04-04
  • 部署Django到阿里云服務(wù)器教程示例

    部署Django到阿里云服務(wù)器教程示例

    這篇文章主要介紹了部署Django到阿里云服務(wù)器教程示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟

    Django集成富文本編輯器summernote的實(shí)現(xiàn)步驟

    在最近的項(xiàng)目中小編使用了這個(gè)富文本編輯器,選擇它的主要原因是配置非常簡(jiǎn)單,默認(rèn)支持普通用戶(hù)上傳圖片(不像ckeditor默認(rèn)只有staff user才能上傳圖片。如果要讓普通用戶(hù)上傳圖片,還需修改源碼裝飾器)?,F(xiàn)在讓我們來(lái)看看如何使用這個(gè)富文本編輯器
    2021-05-05
  • Python類(lèi)中使用cursor.execute()時(shí)語(yǔ)法錯(cuò)誤的解決方法

    Python類(lèi)中使用cursor.execute()時(shí)語(yǔ)法錯(cuò)誤的解決方法

    在 Python 類(lèi)中使用 cursor.execute() 時(shí),出現(xiàn)語(yǔ)法錯(cuò)誤(如 SyntaxError 或 SQL 語(yǔ)法相關(guān)錯(cuò)誤)通常是因?yàn)?nbsp;SQL 語(yǔ)句格式不正確、占位符使用不當(dāng),或參數(shù)傳遞方式不符合預(yù)期,以下是解決此類(lèi)問(wèn)題的常見(jiàn)方法和建議,需要的朋友可以參考下
    2024-09-09

最新評(píng)論