#引入numpy套件
import numpy as np
#將串列轉成ndarray陣列
a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
#印出陣列的形狀
print(a.shape)
#(12,)
print(a)
#[ 1 2 3 4 5 6 7 8 9 10 11 12]
#將a轉成3*4的二維陣列
a.shape=3,4
#印出a的內容
print(a)
'''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
'''
#將a轉成2*6的二維陣列
a=a.reshape(2,6)
#印出a的內容
print(a)
'''
[[ 1 2 3 4 5 6]
[ 7 8 9 10 11 12]]
'''
#指定第[0,5]的數字為33
a[0,5]=33
print(a)
'''
[[ 1 2 3 4 5 33]
[ 7 8 9 10 11 12]]
'''
#指定第[1,5]的數字為66
a[1,5]=66
print(a)
'''
[[ 1 2 3 4 5 33]
[ 7 8 9 10 11 66]]
'''
#印出a的最大值、最小值、中位數
print(a.max(),a.min(),np.median(a))
#66 1 7.5
#矩陣運算,將a的所有數字加上5後乘以2
a=(a+5)*2
print(a)
'''
[[ 12 14 16 18 20 76]
[ 24 26 28 30 32 142]]
'''
#印出有哪些數字大於30
print(a>30)
'''
[[False False False False False True]
[False False False False True True]]
'''
#印出大於30的數字
print(a[a>30])
#[ 76 32 142]
#將大於30的數字歸零
a[a>30]=0
print(a)
a=np.sort(a)
print(a)
'''
[[ 0 12 14 16 18 20]
[ 0 0 24 26 28 30]]
'''
#建立0到59,間隔為10的陣列,並指派到b
b=np.arange(0,60,10)
print(b)
#[ 0 10 20 30 40 50]
#將一維陣列改成為二維陣列
b=b.reshape(-1,1)
print(b)
'''
[[ 0]
[10]
[20]
[30]
[40]
[50]]
'''
#將上方的二維陣列加上[0, 1, 2, 3, 4, 5]
b=np.arange(0,60,10).reshape(-1,1)+np.arange(0,6)
print(b)
'''
[[ 0 1 2 3 4 5]
[10 11 12 13 14 15]
[20 21 22 23 24 25]
[30 31 32 33 34 35]
[40 41 42 43 44 45]
[50 51 52 53 54 55]]
'''
#範例:若沒有轉成二維陣列就相加的情況
temp=np.arange(0,60,10)+np.arange(0,6)
print(temp)
#[ 0 11 22 33 44 55]
#選取中間(去除掉外框的部分)
print(b[1:-1,1:-1])
'''
[[11 12 13 14]
[21 22 23 24]
[31 32 33 34]
[41 42 43 44]]
'''
#將中間歸零
b[1:-1,1:-1]=0
print(b)
'''
[[ 0 1 2 3 4 5]
[10 0 0 0 0 15]
[20 0 0 0 0 25]
[30 0 0 0 0 35]
[40 0 0 0 0 45]
[50 51 52 53 54 55]]
'''
#待更新
沒有留言:
張貼留言
有興趣或有疑問的歡迎提問與交流喔!!!