iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0


放下烤肉,在這裡學程式才屌啊!
當你程式寫不出來的時候,千萬不要把電腦拿去烤,生財工具很重要!!

一維陣列 1-D list


慘了!這看起來有點像肉串
一維陣列就是把東西放在一個中括號裡面,只是更謹慎的定義每個元素存放的不是陣列,更精確來說,在討論陣列時,基本上每個元素都是數字!其他更詳細的討論我們在[Day5]Python也有櫃子?已有詳盡說明了!

二維陣列 2-D list


其實越看越像烤肉網XD
二維陣列就是我們從高中所學的矩陣(matrix or array),此時跟一維陣列不同之處在於,此時最外層的中括號中的元素基本上還是一個陣列,簡單而言就是在陣列中才有陣列。若要呼叫陣列中某一個元素時,先找出他所在的列(row)再行(column),而其個別的index也是從0開始。
我們利用上面的那個陣列在python嘗試進行簡單指令:

import numpy as np
A=[[0,1,2,3,4],[1,11,21,31,41],[2,12,22,32,42],[3,13,23,33,43]] #2-D list
print(A[1]) #output:[1,11,21,31,41]
print(A[2][3]) #output:32
print(len(A))  #output:4
print(len(A[3]))  #output:5
print(np.shape(A))  #output:(4,5) #先row再col.

三維陣列 3-D list


這啥都不像...把我從烤肉氛圍打回現實QQ
從二維陣列大概也可以推知就是最外層的[]立面有第二層[],第二層[]裡面還有[],這時候就會構成一個很像魔術方塊的三維陣列,其他規則遵循二維陣列再放大。以上面為例在這一個陣列L裡面有三層,我們稱為有3 pages,而再拿元素的時候我們會利用 L[page][row][col]呼叫我們的元素。
這次我們利用隨機變數創造一個3x3x3的陣列吧

import numpy as np
B=np.random.randint(1,30,(3,3,3))
#[[[ 9 11 11]
#  [20 26 25]
#  [ 5 22 14]]
#上面為page0
# [[ 5  6 13]
#  [ 2  9 14]
#  [ 8 19  4]]
#上面為page1
# [[ 3 17  7]
#  [21 28 27]
#  [19  6 22]]]
#上面為page2
print(np.shape(B))  #output:(3,3,3) #先row再col.
print(len(A))  #output:3
print(B[2][1]) #output:[21, 28, 27]
print(B[1][2][0]) #output:8

好啦~今天就到這裡吧
該去買肉了~連假第一天我們就...輕鬆一點吧XD
今天的練習就是大家練習一下4維陣列到底怎麼操作呢?


上一篇
[Day11] numpy統計嗨起來
下一篇
[Day13] Really!? 你不知道什麼是字典?
系列文
從0開始學習程式-Python32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
paul8588
iT邦新手 5 級 ‧ 2021-06-14 14:45:32

感謝您的撰文,讓我們初學者可以透過it邦幫忙及google搜尋環境,快速精確的學習到課本以外的程式觀念。
以下程式片段有需要修改的部份,提供給您參考:
import numpy as np
B=np.random.randint(1,30,(3,3,3))
.
.
.
print(np.shape(B))
print(len(A)) =====> 應該修改成 print(len(B)) 程式方能順利運作

我要留言

立即登入留言