NumPy创建数组
1. 从Python列表创建一维数组
-
引入numpy,并且取名字为np
import numpy as np
- 用 np.array 从 Python 列表创建数组
import numpy as np
a = np.array([1, 4, 2, 5, 3])
print("a数组为",a)
输出为
a数组为 [1 4 2 5 3]
- 不同于Python列表,NumPy要求数组必须为同一数据类型。如果类型不匹配,NumPy将会向上转换,将整型被转换为浮点型。如下列程序,b数组的第一个元素为浮点型
import numpy as np
# 用 np.array 从 Python 列表创建数组
a = np.array([1, 4, 2, 5, 3])
b = np.array([1.0, 4, 2, 5, 3])
print("a数组为", a)
print("b数组为", b)
输出为
a数组为 [1 4 2 5 3]
b数组为 [1. 4. 2. 5. 3.]
b数组元素自动转化为浮点型
- 可以用 dtype 关键字设置数组的数据类型
import numpy as np
# 用 np.array 从 Python 列表创建数组
a = np.array([1, 4, 2, 5, 3])
b = np.array([1.0, 4, 2, 5, 3])
# 明确设置数组的数据类型,可以用 dtype 关键字
c = np.array([1, 2, 3, 4], dtype="float32")
print("a数组为", a)
print("b数组为", b)
print("c数组为", c)
输出为:
a数组为 [1 4 2 5 3]
b数组为 [1. 4. 2. 5. 3.]
c数组为 [1. 2. 3. 4.]
可见c数组元素每一个都设置为浮点类型
- 使用它的 shape 关键字,它是由N个非负整数组成的tuple (元组),可设置每个维度的大小
import numpy as np
d = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(d.shape)
输出为3行3列的元组
(3, 3)
2. 从Python列表创建多维数组
用 np.array 从 Python 列表创建多维数组,如下创建一个3*3的数组
import numpy as np
a = np.array([1, 4, 2, 5, 3])
d = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print("a数组为", a)
print("d数组为\n", d)
输出为:
a数组为 [1 4 2 5 3]
d数组为
[[1 2 3]
[4 5 6]
[7 8 9]]
3. 从头创建数组
- 创建一个长度为5的数组,数组的值都是0,类型为整型
import numpy as np
a = np.zeros(5, dtype=int)
print(a)
输出为
[0 0 0 0 0]
- 创建一个2×3的浮点型数组,数组的值都是1
import numpy as np
b = np.ones((2, 3), dtype="int32")
print(b)
输出为
[[1 1 1]
[1 1 1]]
- 创建一个2×3的浮点型数组,数组的值都是2.3
import numpy as np
full((2, 3), 2.3)
print(c)
输出为
[[2.3 2.3 2.3]
[2.3 2.3 2.3]]
- 创建从0到20(不包括20),步长为2的数组
import numpy as np
d = np.arange(0, 20, 2)
print(d)
输出为
[ 0 2 4 6 8 10 12 14 16 18]
- 创建一个5个元素的数组,这5个数均匀地分配到0~20
import numpy as np
e = np.linspace(0, 20, 5)
print(e)
输出为
[ 0. 5. 10. 15. 20.]
- 创建一个3×3的、[0, 10)区间的随机整型数组
import numpy as np
f = np.random.randint(0, 10, (3, 3))
print(f)
输出为
[[1 8 9]
[0 4 6]
[1 0 8]]
- 创建一个3×3的单位矩阵
import numpy as np
g = np.eye(3)
print(g)
输出为
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
- 创建4个整数组成的未初始化的数组,数组的值是内存空间中的任意值
import numpy as np
h = np.empty(4)
print(h)
输出为
[5. 10. 15. 20.]
版权声明:本文为weixin_48466256原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。