Ⅰ python:numpy.array()創建三維以上數組
需求:根據已有的多個列表,利用numpy.array()函數創建三維以上數組
格式概述: 每一維用一個 [] 括起,不同維之間用 , 逗號間隔,最後總體再用 [] 括起!!!
說明 :列表肯定是一維的,多個列表一行一行堆疊形成二維,多個這樣的二維構成三維,以此類推可得更高維矩陣(一般3維以上就不用numpy.array()這種方法創建了)。
注意 :高維數組,以三維(5,2,3)為例:前面的5代表頁數,即表示(2,3)這樣的二維矩陣有5個。即: 前面的數,永遠代表比它"低一維"的數組有多少個 !
(1)創建二維數組的例子:
(2)創建三維數組的例子1:(2,3,3)
(3)創建三維數組的例子2:(4,2,3)
補充:最快驗證自己創建的數組是否滿足自己的維度需求的方式,就是看列印的結果中, 最外面有幾個 ] 中括弧,有幾個 ] 就是幾維數組 !如本文中第3個例子,列印結果最外層有3個 ],說明滿足3維的要求。
Ⅱ python 怎麼查看一個矩陣的維數
都是復制黨,網路知道回答真的質量太低了,真的很心疼,言歸正傳
利用numpy求矩陣維數:
importnumpy#導入numpy模塊,piplist可以查看是否安裝了該模塊
print("數組的維度數目",a1.ndim)
很多人提到了shape函數,這也加上吧
print("數組的維度",a1.shape)
不過這里列印的不是矩陣維數,而是告訴你矩陣維度元祖
比如(28,28,3),能夠看出這是一個3維矩陣,但返回的不是維度
Ⅲ 什麼是數組的維度,python 的ndim的使用
數組的維度就是一個數組中的某個元素,當用數組下標表示的時候,需要用幾個數字來表示才能唯一確定這個元素,這個數組就是幾維。numpy中直接用 * 即可表示數與向量的乘法,參考python 2.7的一個例子:inport numpy as np a = np.array([1,2,3,4]) # 向量 b = 5 # 數 print a*b ++++++++++++ [5,10,15,20]
Ⅳ Python氣象數據處理進階之Xarray(6):數據重組與換形
這一部分涉及到了常用的操作,比如調換維度的位置,給數據重新reshape換形等等,建議大家可以認真閱讀這部分。
老樣子,先新建一個數組
比如說在求某個東西時需要將時間維放在最後一維,但是數據本身的時間在第一維,那麼便可以用到這個操作。
第一種是精準換位,指定每個維度的位置
第二種是單獨換位,只對指定維度換位,將time放在最後,其餘不變
第三種為全部換位,相當於數組轉置
擴展指增加一個維度,壓縮指將一個維度擠壓掉
官方文檔中接下來有一段是關於DataArray向DataSet轉換的,個人感覺放在這一章節並不合理,我後邊會整理放進Python氣象數據處理進階之Xarray(1)中(我覺得兩種基礎數據結構以及互相轉換應該最開始介紹的)。所以接下來跳過這部分。
個人感覺可能處理站點數據會用到這個方法
換一個數組演示
現在將這個2維數組堆疊成1維
也可以拆分,其實就是反堆疊
最重要的是不同於Pandas,Xarray的stack不缺自動丟失缺測值!!!
Xarray還提供了將不同變數stack的例子,有興趣的可以去看看。這個用法感覺比較雞肋
這塊比較難理解,建議還是先讀第一篇文章,弄清數據結構,da數組顯示Dimensions without coordinates: x,而通過da.set_index函數,將X設置為混合索引號。
之後便可以實線自由索引:
通過mda.reset_index('x')重置。
reorder_levels()函數允許調換索引順序(個人感覺比較雞肋)
這小節應該是這篇文章和數組換形換維同等重要的。
這就是對數組進行滾動。這個的作用主要在於做差分計算。雖然前邊講過Xarray提供了中央差計算函數,但是仍需要更靈活的操作,滾動函數就實現了這個目的。