[TOC]
# 生成指定范圍,步長,類型數組
~~~
import numpy as np
# 生成2到20的數組,包左不包右
print(np.arange(2, 20))
# 生成3到15的數組,包左不包右,步長為2,類型為float,32位
print(np.arange(3, 15, 2, dtype=np.float32))
~~~
輸出
~~~
[ 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
[ 3. 5. 7. 9. 11. 13.]
~~~
# 生成等差數組
0到10之間10個等差數組,既包含頭也包含尾
~~~
import numpy as np
print(np.linspace(0, 10, 10))
~~~
輸出
~~~
[ 0. 1.11111111 2.22222222 3.33333333 4.44444444
5.55555556 6.66666667 7.77777778 8.88888889 10. ]
~~~
# 生成網格
~~~
import numpy as np
x = np.linspace(-10, 10, 5)
y = np.linspace(-10, 10, 5)
# 構造一個網格,x就是第一維,y就是第二維,這個網格是2維的
x, y = np.meshgrid(x, y)
print(x)
print(y)
~~~
輸出
~~~
[[-10. -5. 0. 5. 10.]
[-10. -5. 0. 5. 10.]
[-10. -5. 0. 5. 10.]
[-10. -5. 0. 5. 10.]
[-10. -5. 0. 5. 10.]]
[[-10. -10. -10. -10. -10.]
[ -5. -5. -5. -5. -5.]
[ 0. 0. 0. 0. 0.]
[ 5. 5. 5. 5. 5.]
[ 10. 10. 10. 10. 10.]]
~~~

# 以10為底生成數組
`x/10`
~~~
import numpy as np
# 默認10位底的,生成5個
print(np.logspace(0, 1, 5))
~~~
輸出
~~~
[ 1. 3.16227766 10. 31.6227766 100. ]
~~~
# 構造向量
~~~
import numpy as np
# 構造橫向量0-10,不包含10,1為步長
print(np.r_[0:10:1])
# 構造列向量0-10,不包含10,1為步長
print(np.c_[0:10:1])
~~~
輸出
~~~
[0 1 2 3 4 5 6 7 8 9]
[[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
~~~
# 構造都是0,或者都是1的矩陣
~~~
import numpy as np
# 生成1維矩陣,3個0
print(np.zeros(3))
# 生成2維矩陣,3*3
print(np.zeros((3, 3)))
# 生成2維矩陣,3*3,值為1,類型是float
print(np.ones((3, 3), dtype=np.float32))
~~~
輸出
~~~
[ 0. 0. 0.]
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
~~~
如果我們要生成里面全是8的呢
~~~
import numpy as np
# 生成2維矩陣,3*3
print(np.ones((3, 3)) * 8)
~~~
輸出
~~~
[[ 8. 8. 8.]
[ 8. 8. 8.]
[ 8. 8. 8.]]
~~~
復制其他數組的維度,值填充為0或1
~~~
import numpy as np
tang_array = np.array([1, 2, 3, 4])
# 復制維度值填充為0或1
print(np.zeros_like(tang_array))
print(np.ones_like(tang_array))
~~~
輸出
~~~
[0 0 0 0]
[1 1 1 1]
~~~
# 構造單位矩陣
它是個方陣,從左上角到右下角的對角線(稱為主對角線)上的元素均為1。除此以外全都為0。
指定是橫縱是多少個
~~~
import numpy as np
print(np.identity(6))
~~~
輸出
~~~
[[ 1. 0. 0. 0. 0. 0.]
[ 0. 1. 0. 0. 0. 0.]
[ 0. 0. 1. 0. 0. 0.]
[ 0. 0. 0. 1. 0. 0.]
[ 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 1.]]
~~~