最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python reshape的用法及多個(gè)二維數(shù)組合并為三維數(shù)組的實(shí)例

 更新時(shí)間:2020年02月07日 10:25:32   作者:bebr  
今天小編就為大家分享一篇Python reshape的用法及多個(gè)二維數(shù)組合并為三維數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

reshape(shape) : 不改變數(shù)組元素,返回一個(gè)shape形狀的數(shù)組,原數(shù)組不變。是對(duì)每行元素進(jìn)行處理

resize(shape) : 與.reshape()功能一致,但修改原數(shù)組

In [1]: a = np.arange(20)
#原數(shù)組不變
In [2]: a.reshape([4,5])
Out[2]:
array([[ 0, 1, 2, 3, 4],
  [ 5, 6, 7, 8, 9],
  [10, 11, 12, 13, 14],
  [15, 16, 17, 18, 19]])
 
In [3]: a
Out[3]:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19])
 
#修改原數(shù)組
In [4]: a.resize([4,5])
 
In [5]: a
Out[5]:
array([[ 0, 1, 2, 3, 4],
  [ 5, 6, 7, 8, 9],
  [10, 11, 12, 13, 14],
  [15, 16, 17, 18, 19]])

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

In [6]: a.swapaxes(1,0)
Out[6]:
array([[ 0, 5, 10, 15],
  [ 1, 6, 11, 16],
  [ 2, 7, 12, 17],
  [ 3, 8, 13, 18],
  [ 4, 9, 14, 19]])

.flatten() : 對(duì)數(shù)組進(jìn)行降維,返回折疊后的一維數(shù)組,原數(shù)組不變

In [7]: a.flatten()
Out[7]:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  17, 18, 19])

將多個(gè)二維數(shù)組合并為一個(gè)三維數(shù)組

方法一:

對(duì)于兩個(gè)(或者多個(gè))同一維度的矩陣,直接利用np.array()重新構(gòu)造一個(gè)array,這樣可以變相起到擴(kuò)展維數(shù)的作用。例如:

import numpy as np
 
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[2,2,3],[4,5,6]])
c = np.array([[3,2,3],[4,5,6]])
print('矩陣a:\n',a)
print('維數(shù):',a.shape)
 
com = np.array([a,b,c])
print('合并矩陣:\n',com)
print('維數(shù):',com.shape)
 
輸出結(jié)果為:
 
矩陣a:
 [[1 2 3]
 [4 5 6]]
維數(shù): (2, 3)
合并矩陣:
 [[[1 2 3]
 [4 5 6]]
 
 [[2 2 3]
 [4 5 6]]
 
 [[3 2 3]
 [4 5 6]]]
維數(shù): (3, 2, 3)

方法二:

但是,如果兩個(gè)array,使用方法一時(shí)會(huì)出現(xiàn)如下結(jié)果:

import numpy as np
 
aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
 
com = np.array([aa,a])
print('合并矩陣:\n',com)
print('維數(shù):',com.shape)
 
輸出結(jié)果:
 
合并矩陣:
 [array([[[1, 2, 3],
  [4, 5, 6]],
 
  [[2, 2, 3],
  [4, 5, 6]],
 
  [[3, 2, 3],
  [4, 5, 6]]])
 array([[4, 2, 3],
  [4, 5, 6]])]
維數(shù): (2,)

可以看到:輸出的維數(shù)不對(duì),以上方法就不適用了。

那么,我們就需要利用np.append和array.reshape()函數(shù)對(duì)數(shù)組進(jìn)行拼接之后重組,具體實(shí)現(xiàn)如下:

import numpy as np
 
aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
data = np.append(aa,a)#先拼接成一個(gè)行向量
print(data)
 
dim = aa.shape#獲取原矩陣的維數(shù)
print('原矩陣維數(shù):',dim)
data1 = data.reshape(dim[0]+1,dim[1],dim[2])#再通過(guò)原矩陣的維數(shù)重新組合
 
print('合并矩陣:\n',data1)
print('維數(shù):',data1.shape)

現(xiàn)在來(lái)看一下用reshape將二維數(shù)據(jù)升為三維后的數(shù)據(jù)分布情況:

import numpy as np
b = np.arange(36).reshape((6,6))
b1 = b.reshape(2,3,6)

b的元素:

b1的元素:

可以看到,原來(lái)6*6的矩陣被分為了2個(gè)3*6的矩陣。每一行的數(shù)據(jù)分布并沒(méi)有改變,只是將前3行劃為一個(gè)維度,然后將后三行劃為另一個(gè)維度。

b1.reshape(6,6)

如果用這條命令,則數(shù)據(jù)又被還原了回去,與b的一樣。

b1.reshape(3,12)

如果用的是reshape(3,12),則相當(dāng)于將數(shù)據(jù)首先拉伸為1維的,然后再將一維數(shù)據(jù)重組為3*12

方法三:

相比于前兩種方法,這種方法可謂“曲線救國(guó)”之典范,具體思路是:先轉(zhuǎn)化成list,拼接后再轉(zhuǎn)化回去。

這是因?yàn)閘ist中的append()函數(shù)可以在添加函數(shù)的時(shí)候不改變?cè)瓉?lái)list的維度。雖然沒(méi)有對(duì)這種方法進(jìn)行一個(gè)速度測(cè)試,但直覺(jué)來(lái)看時(shí)間復(fù)雜度挺高的,建議慎用。

aa = np.array([[[1,2,3],[4,5,6]],[[2,2,3],[4,5,6]],[[3,2,3],[4,5,6]]])
a = np.array([[4,2,3],[4,5,6]])
 
#將array轉(zhuǎn)換成list
aa = aa.tolist(aa)
a = a.list(a)
 
aa.append(a)#注意與方法二中np.append()用法的區(qū)別
com = np.array(aa)
print(com.shape)
 
輸出結(jié)果:
 
合并矩陣:
  [[[1 2 3]
  [4 5 6]]
 
  [[2 2 3]
  [4 5 6]]
 
  [[3 2 3]
  [4 5 6]]
  
  [[4 2 3]
  [4, 5, 6]]]
維數(shù): (4,2,3)

這里注意:

兩種類型的相互轉(zhuǎn)換函數(shù):

array轉(zhuǎn)list:a = a.tolist()

list轉(zhuǎn)array:a =np.array(a)

以上這篇Python reshape的用法及多個(gè)二維數(shù)組合并為三維數(shù)組的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python利用Rows快速操作csv文件

    Python利用Rows快速操作csv文件

    Rows?是一個(gè)專門(mén)用于操作表格的第三方Python模塊。只要通過(guò)?Rows?讀取?csv?文件,她就能生成可以被計(jì)算的?Python?對(duì)象。本文將通過(guò)示例為大家詳細(xì)講講Python如何利用Rows快速操作csv文件,需要的可以參考一下
    2022-09-09
  • 詳解python爬取彈幕與數(shù)據(jù)分析

    詳解python爬取彈幕與數(shù)據(jù)分析

    這篇文章主要介紹了詳解python爬取彈幕與數(shù)據(jù)分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟

    Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟

    這篇文章主要介紹了Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python繪制分段函數(shù)的實(shí)現(xiàn)示例

    Python繪制分段函數(shù)的實(shí)現(xiàn)示例

    本文主要介紹了Python繪制分段函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python編寫(xiě)百度貼吧的簡(jiǎn)單爬蟲(chóng)

    Python編寫(xiě)百度貼吧的簡(jiǎn)單爬蟲(chóng)

    這篇文章主要介紹了Python編寫(xiě)百度貼吧的簡(jiǎn)單爬蟲(chóng),簡(jiǎn)單實(shí)現(xiàn)了下載對(duì)應(yīng)頁(yè)碼的頁(yè)面并存為以當(dāng)前時(shí)間命名的html文件,這里分享給大家,拋磚引玉。
    2015-04-04
  • Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    Python實(shí)現(xiàn)孤立隨機(jī)森林算法的示例代碼

    孤立森林(isolation?Forest)是一種高效的異常檢測(cè)算法,它和隨機(jī)森林類似,但每次選擇劃分屬性和劃分點(diǎn)(值)時(shí)都是隨機(jī)的,而不是根據(jù)信息增益或基尼指數(shù)來(lái)選擇。本文將用Python實(shí)現(xiàn)這一算法,需要的可以參考一下
    2022-03-03
  • Python輸出各行命令詳解

    Python輸出各行命令詳解

    本篇文章給大家詳細(xì)分析了Python輸出各行命令的解釋,為初學(xué)者提供詳細(xì)的講解,有興趣的朋友參考下。
    2018-02-02
  • pycharm2020.2 配置使用的方法詳解

    pycharm2020.2 配置使用的方法詳解

    這篇文章主要介紹了pycharm2020.2 配置使用的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python pymysql向SQL語(yǔ)句中傳參的多種方法

    Python pymysql向SQL語(yǔ)句中傳參的多種方法

    這篇文章主要介紹了Python-pymysql如何向SQL語(yǔ)句中傳參,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Python?Tkinter庫(kù)從入門(mén)到進(jìn)階使用教程

    Python?Tkinter庫(kù)從入門(mén)到進(jìn)階使用教程

    Tkinter是Python標(biāo)準(zhǔn)庫(kù)中內(nèi)置的圖形用戶界面(GUI)工具包,提供了創(chuàng)建窗口、按鈕、文本框等GUI元素的功能,本文將介紹Tkinter的基礎(chǔ)知識(shí),幫助大家快速入門(mén)
    2023-12-12

最新評(píng)論

赤峰市| 昌宁县| 临潭县| 肇州县| 怀来县| 徐汇区| 合山市| 甘南县| 砀山县| 县级市| 友谊县| 获嘉县| 剑川县| 乌拉特后旗| 漯河市| 天长市| 仁布县| 昌图县| 闸北区| 巴林左旗| 沾益县| 嘉荫县| 体育| 容城县| 六盘水市| 微博| 西丰县| 白沙| 丰原市| 阳高县| 霍林郭勒市| 北辰区| 南华县| 江华| 克拉玛依市| 新营市| 全南县| 合肥市| 容城县| 舞钢市| 呼和浩特市|