科學(xué)計(jì)算庫numpy學(xué)習(xí) (二) 操作ndarray多維數(shù)組

1. 索引

可以通過arr[0][0]的方式取多維數(shù)組,也可以用arr[0, 0]取出對應(yīng)位置的值

arr = np.arange(20).reshape(4, 5)#將一維數(shù)組數(shù)組張成4*5的二維數(shù)組
print(arr[0][0])
print(arr[0, 0])

更高維的數(shù)組都可以通過這2種方式取出對應(yīng)位置的值

2. 切片

切片的使用方式和Python的集合類型list很類似,arr[:]是取出arr中的所有值
語法形式:arr[begin:end:step],所取出的值為[begin, end),其中step為步長,默認(rèn)為1,即從begin開始每次+step直到end為止。同list一樣,step可以為負(fù)。
多維數(shù)組用法和一維數(shù)組是一樣的,只是每個(gè)維度各自有一個(gè)begin:end:step參數(shù),下面以代碼演示

d = np.arange(24).reshape(2, 3, 4)#創(chuàng)建三維數(shù)組
print(d)
print(d[1, 1, 1])#
print(d[:, 1, 1])#取出所有行的第一列第一個(gè)元素
print(d[:, :, ::2])#取出所有行所有列的0,2...元素

輸出結(jié)果:

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

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

 [[12 14]
  [16 18]
  [20 22]]]
3. 改變數(shù)組的維度
  • reshape()
    reshape()在前面已經(jīng)使用過了,其作用就是改變傳入數(shù)組的維度,并返回一個(gè)新的數(shù)組
  • resize()
    resize()也是改變數(shù)組維度,不過是在原數(shù)組上直接做改動, 直接給.shape賦值有同樣的功能
  • ravel()
    展平數(shù)組,返回一個(gè)新的數(shù)組
  • flatten()
    同ravel(),區(qū)別在于flatten()與原數(shù)組公用一個(gè)內(nèi)存空間,原數(shù)組和新數(shù)組其中一個(gè)改變?nèi)我庖粋€(gè)元素值,另一個(gè)數(shù)組對應(yīng)位置的元素也會改變
4. 數(shù)組的組合
  • 水平組合hstack((arr1, arr2)),即將arr2拼接在arr1之后
    這里需要注意arr1和arr2的維度及高度必須一樣
  • 垂直組合vstack((arr1, arr2)),將arr2拼接在arr1下面
  • 深度組合dstack((arr1, arr2)),就是將一系列數(shù)組沿著縱軸(深度)方向進(jìn)行層疊組合
  • concatenate((arr1, arr2), axis),通過axis來決定是hstack還是vstack
  • column_stack,和hstack類似
  • row_stack, 和vstack類似
5. 數(shù)組的分割
  • hsplit(arr, n),將數(shù)組拆分為n列
  • vsplit(arr, n),將數(shù)組拆分為n行
  • dsplit(arr, n),按照深度方向分割數(shù)組
  • split(arr, n, axis), 包含上面幾種分割方式
5.數(shù)組的屬性
  • ndim,數(shù)組的維度
  • size,數(shù)組元素的總個(gè)數(shù)
  • itemsize,每個(gè)元素的字節(jié)數(shù)
  • nbytes, 數(shù)組所占字節(jié)數(shù)
  • T,轉(zhuǎn)置矩陣
  • real,取出復(fù)數(shù)數(shù)組的實(shí)部
  • imag,取出虛部
  • flat,返回一個(gè)迭代器,可以遍歷數(shù)組的所有元素

總結(jié)

ndarray用法比較多,建議邊運(yùn)行出結(jié)果加強(qiáng)理解和記憶

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,681評論 0 9
  • # 數(shù)組部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger閱讀 1,316評論 0 1
  • import numpy as np 創(chuàng)建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陸文斌閱讀 825評論 0 1
  • 夏天到了,老Z說,太陽太大,會曬黑的,晚上再去吧。 吃過晚飯,坐在電視機(jī)前,老Z說,剛吃完飯,需要休息一下,才能運(yùn)...
    一個(gè)瑜伽修行者閱讀 410評論 0 0
  • 今天我讀了《青銅葵花》這本書。 蒼蒼茫茫,無邊無際,光溜溜,一望無際,開荒種地,挖塘養(yǎng)魚,一塵不染...
    燕麥雪里藏閱讀 158評論 0 0

友情鏈接更多精彩內(nèi)容