Numpy 陣列簡單操作

xie仗劍天涯發表於2017-03-18
  1. 建立一個2*2的陣列,計算對角線上元素的和
import numpy as np

a = np.arange(4).reshape(2,2)
print (a) 
#[[0 1]
# [2 3]]

n1 = a[0,0]
print (n1)
# 0

n2 = a[0,1]
print (n2)
# 1

n3 = a[1,0]
print (n3)
# 2

n4 = a[1,1]
print (n4)
# 3

sum_1 = n1 + n3
print (sum_1)
# 2

sum_2 = n2 + n4
print (sum_2)
# 4
  1. 建立一個長度為9的一維資料,陣列元素0到8。將它重新變為3*3的二維陣列
import numpy as np

b1 = np.arange(9)
print (b1)
# [0 1 2 3 4 5 6 7 8]

b2 = b1.reshape(3,3)
print (b2)
#[[0 1 2]
# [3 4 5]
# [6 7 8]]
  1. 建立兩個33的陣列,分別將它們合併為36、6*3的陣列後,拆分為3個陣列(維數不限定)
import numpy as np

c1 = np.arange(9).reshape(3,3)
print (c1)
#[[0 1 2]
# [3 4 5]
# [6 7 8]]

c2 = 3*c1
print (c2)
#[[ 0  3  6]
# [ 9 12 15]
# [18 21 24]]

c3 = np.hstack((c1,c2))
print (c3)
#[[ 0  1  2  0  3  6]
# [ 3  4  5  9 12 15]
# [ 6  7  8 18 21 24]]

c4 = np.vstack((c1,c2))
print (c4)
#[[ 0  1  2]
# [ 3  4  5]
# [ 6  7  8]
# [ 0  3  6]
# [ 9 12 15]
# [18 21 24]]

c5 = np.hsplit(c3,3)
print (c5)
#[array([[0, 1],
#       [3, 4],
#       [6, 7]]), array([[ 2,  0],
#       [ 5,  9],
#       [ 8, 18]]), array([[ 3,  6],
#       [12, 15],
#       [21, 24]])]

c6 = np.vsplit(c4,3)
print (c6)
#[array([[0, 1, 2],
#       [3, 4, 5]]), array([[6, 7, 8],
#       [0, 3, 6]]), array([[ 9, 12, 15],
#       [18, 21, 24]])]
  1. 說說numpy陣列的優點

NumPy 是高效能科學計算和資料分析的基礎包。

NumPy陣列在數值運算方面的效率優於Python提供的list容器。使用NumPy可以在程式碼中省去很多迴圈語句,因此其程式碼比等價的Python程式碼更為簡潔。

相關文章