二、Nunpy小結

# coding: utf-8

# # 科學計算庫NumPy
import numpy as np

# ## 1. 創建Array
my_list = [1, 2, 3]
x = np.array(my_list)

print('列表:', my_list)
print('Array: ', x)

np.array([1, 2, 3]) - np.array([4, 5, 6])

m = np.array([[1, 2, 3], [4, 5, 6]])
print(m)
print('shape: ', m.shape)

n = np.arange(0, 30, 2)
print(n)

n = n.reshape(3, 5)
print('reshape後: ')
print(n)

print('ones:\n', np.ones((3, 2)))
print('zeros:\n', np.zeros((3, 2)))
print('eye:\n', np.eye(3))
print('diag:\n', np.diag(my_list))

print('*操作:\n', np.array([1, 2, 3] * 3))
print('repeat:\n', np.repeat([1, 2, 3], 3))

p1 = np.ones((3, 3))
p2 = np.arange(9).reshape(3, 3)
print('縱向疊加: \n', np.vstack((p1, p2)))
print('橫向疊加: \n', np.hstack((p1, p2)))

# ## 2. Array操作
print('p1: \n', p1)
print('p2: \n', p2)

print('p1 + p2 = \n', p1 + p2)
print('p1 * p2 = \n', p1 * p2)
print('p2^2 = \n', p2 ** 2)
print('p1.p2 = \n', p1.dot(p2))

p3 = np.arange(6).reshape(2, 3)
print('p3形狀: ', p3.shape)
print(p3)
p4 = p3.T
print('轉置後p3形狀: ', p4.shape)
print(p4)

print('p3數據類型:', p3.dtype)
print(p3)

p5 = p3.astype('float')
print('p5數據類型:', p5.dtype)
print(p5)

a = np.array([-4, -2, 1, 3, 5])
print('sum: ', a.sum())
print('min: ', a.min())
print('max: ', a.max())
print('mean: ', a.mean())
print('std: ', a.std())
print('argmax: ', a.argmax())
print('argmin: ', a.argmin())

# ## 3. 索引與切片
# 一維array
s = np.arange(13) ** 2
print('s: ', s)
print('s[0]: ', s[0])
print('s[4]: ', s[4])
print('s[0:3]: ', s[0:3])
print('s[[0, 2, 4]]: ', s[[0, 2, 4]])

# 二維array
r = np.arange(36).reshape((6, 6))
print('r: \n', r)
print('r[2, 2]: \n', r[2, 2])
print('r[3, 3:6]: \n', r[3, 3:6])

r > 30
# 過濾
print(r[r > 30])

# 將大於30的數賦值爲30
r[r > 30] = 30
print(r)

# copy()操作
r2 = r[:3, :3]
print(r2)

# 將r2內容設置爲0
r2[:] = 0

# 查看r的內容
print(r)

r3 = r.copy()
r3[:] = 0
print(r)

# ## 4. 遍歷 Array
t = np.random.randint(0, 10, (4, 3))
print(t)

for row in t:
    print(row)

# 使用enumerate()
for i, row in enumerate(t):
    print('row {} is {}'.format(i, row))

t2 = t ** 2
print(t2)

# 使用zip對兩個array進行遍歷計算
for i, j in zip(t, t2):
    print('{} + {} = {}'.format(i, j, i + j))

x = np.ones(10)
print(x)
x.ndim

x.transpose()
print(x)
x.ndim

x.reshape(-1,1)
print(x)
x.ndim

x.reshape(10,1)
print(x)
x.ndim

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章