[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.]]
~~~
![](https://box.kancloud.cn/a6f82fe6ff382967abaee8c88f2af653_574x358.png)
# 以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.]]
~~~