Python之Numpy陣列
阿新 • • 發佈:2020-12-29
Python之Numpy陣列
把經常會用到的陣列列在這裡...
1. np.zeros()
a1 = np.zeros(3)
# array([0., 0., 0.])
a2 = np.zeros([2,3])
# array([[0., 0., 0.],
# [0., 0., 0.]])
a3 = np.zeros((2, 2))
# array([[0., 0.],
# [0., 0.]])
zeros建立的是全部為0的陣列,zeros()裡面填單個數字:一維陣列,
zeros()裡面填列表[n,m]:n行m列陣列,
zeros()裡面填元組(n,m):n行m列陣列(哦喲,很神奇哦,所以填方括號和圓括號是一樣的咯)
a = np.zeros(3, dtype=int)
type(a[0])
# numpy.int64
zeros()預設生成的資料型別是float64(64位浮點數),如果需要指定資料型別的話,在括號里加一個dtype=int就好(生成的是int64,64位整數)
z = np.zeros(4)
print(z)
# [0. 0. 0. 0.]
z.shape = (2, 2)
print(z)
# [[0. 0.]
# [0. 0.]]
z.shape = (4, 1)
print(z)
# [[0.]
# [0.]
# [0.]
# [0.]]
shape可以變換zeros()的維度,增加維度
shap跟reshape有什麼不同?==>
shape是檢視資料有多少行多少列(雖然也可以賦值,但是不是本職工作)
reshape()是陣列array中的方法,作用是將資料重新組織
2. np.ones()
a1 = np.ones(3)
print(a1)
# [1. 1. 1.]
a2 = np.ones([2,3])
print(a2)
# [[1. 1. 1.]
# [1. 1. 1.]]
a3 = np.ones((2, 2))
print(a3)
# [[1. 1.]
# [1. 1.]]
跟np.zeros()差不多,只是zeros()生成的全是0,ones()生成的全是1(而且它們生成的都是float64)
3. np.empty()
z = np.empty(3)
print(z)
# [1. 1. 1.]
它是在記憶體中建立陣列,之後可以用資料去填充這個陣列==>(但生成出來的是1,跟ones()的結果一樣,難道這個1是佔位符一般的存在?)
4.np.linspace()
z = np.linspace(2, 4, 5)
# [2. , 2.5, 3. , 3.5, 4. ]
linspace(n, m, i)的意思是在n~m之間,生成i個數值(這i個數值不是隨機生成的,平均間隔是相等的哦)