NumPy数组创建
NumPy数组创建
- 1、numpy.array()
- 2、numpy.zeros()
- 3、numpy.ones()
- 4、numpy.empty()
- 5、numpy.full()
- 6、numpy.arange()
- 7、numpy.linspace()
- 8、numpy.logspace()
- 9、numpy.geomspace()
- 10、numpy.random.rand()
- 11、numpy.random.randint()
- 12、numpy.random.random()
- 13、numpy.random.randn()
- 14、numpy.random.normal()
- 15、numpy.random.uniform()
- 16、numpy.random.binomial()
- 17、numpy.random.poisson()
- 18、numpy.random.exponential()
- 19、numpy.eye()
- 20、numpy.identity()
- 21、numpy.diag()
- 22、numpy.vstack()
- 23、numpy.hstack()
- 24、numpy.concatenate()
- 25、numpy.stack()
- 26、numpy.column_stack()
- 27、numpy.row_stack()
- 28、numpy.loadtxt()
- 29、numpy.genfromtxt()
- 30、numpy.fromfile()
- 31、numpy.load()
- 32、numpy.fromfunction()
- 33、numpy.fromiter()
- 34、numpy.tile()
- 35、numpy.repeat()
1、numpy.array()
从列表、元祖创建数组
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称 | 描述 |
---|---|
object | 数组或嵌套的数列,元组 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
# list 创建一维数组
d1a = np.array([1, 2, 3])
print(d1a)# 元组 创建一维数组
d1b = np.array((4, 5, 6))
print(d1b)# list 创建二维维数组
d2a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(d2a)# 元组 创建二维维数组
d2b = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)])
print(d2b)
2、numpy.zeros()
创建数据为0的数组
# 2行3列 全部为0
print(np.zeros((2, 3), np.int32))
3、numpy.ones()
创建数据为1的数组
# 2行3列 全部为1
print(np.ones((2, 3), np.int32))
4、numpy.empty()
创建未初始化的数组(内容随机)
# 2行3列,数据未初始化(数据随机)
print(np.empty((2,3), np.int32))
5、numpy.full()
创建数组,指定初始值
# 2行3列,初始值为1
print(np.full((2, 3), dtype=np.int32, fill_value=1))
6、numpy.arange()
等差数列生成数组, 指定边界,步长
# 等差数列,生成数组
print(np.arange(0, 10, 2))
print(np.arange(start=0, stop=10, step=1, dtype=np.int32))
7、numpy.linspace()
等差数列生成数组, 指定边界,元素个数
# 指定边界,元素个数5
print(np.linspace(start=1, stop=9, num=5, dtype=np.int32))
8、numpy.logspace()
生成对数空间中的等比序列
- base,基数
- num, 返回元素个数
- start,N次方,开始
- stop,N次方,结束
# base的N次方, 返回数量
print(np.logspace(start=1, stop=8, base=2, num=3, dtype=np.int32))
9、numpy.geomspace()
生成几何级数(等比)序列
print(np.geomspace(start=1, stop=8, num=4))
10、numpy.random.rand()
随机浮点数,数组
# 2行3列,浮点数
print(np.random.rand(2, 3))
11、numpy.random.randint()
随机整数,数组
# 2行3列,元素1-10的随机数
print(np.random.randint(low=1, high=10, size=(2, 3), dtype=np.int32))# 1行10列,元素1-10的随机数
print(np.random.randint(low=1, high=10, size=(10), dtype=np.int32))
12、numpy.random.random()
0-1之间的浮点数,数组
# 2行3列,浮点数
print(np.random.random((2,3)))
13、numpy.random.randn()
生成标准正态分布的随机数
# 2行3列,浮点数
print(np.random.randn(2, 3))
14、numpy.random.normal()
正态分布
15、numpy.random.uniform()
均匀分布
16、numpy.random.binomial()
二项分布
17、numpy.random.poisson()
泊松分布
18、numpy.random.exponential()
指数分布
19、numpy.eye()
创建单位矩阵,主对角线元素为1,其他元素为0,可通过参数k控制对角线起始位置(列序号)
# 2行3列
print(np.eye(N=2, M=3, dtype=np.int32))
20、numpy.identity()
创建单位矩阵(这里是方阵),主对角线元素为1,其他元素为0
# 2行2列
print(np.identity(2, dtype=np.int32))
21、numpy.diag()
创建对角矩阵或提取对角线元素
# 3行3列
print(np.diag([1, 2, 3]))
22、numpy.vstack()
垂直拼接数组, 列不变,行增加
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.vstack((a, b)))
23、numpy.hstack()
水平拼接数组,行不变,列增加
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.hstack((a, b)))
24、numpy.concatenate()
通用拼接函数,可指定轴
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.concatenate((a, b), axis=0))
25、numpy.stack()
沿新轴堆叠多个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.stack((a, b), axis=0))
26、numpy.column_stack()
将一维数组作为列合并成二维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.column_stack((a, b)))[[1 4][2 5][3 6]]
27、numpy.row_stack()
将一维数组作为行合并成二维数组(等价vstack)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.row_stack((a, b)))
print(np.vstack((a, b)))[[1 2 3][4 5 6]]
28、numpy.loadtxt()
从文本文件读取数组(如 CSV)
data = np.loadtxt("d:/log/txt1.txt", delimiter="\t", encoding="utf-8", dtype=np.str_)
print(data)[['姓名' '语文' '数学' '英语']['张三' '120' '30' '14']['李四' '110' '132' '145']]
29、numpy.genfromtxt()
从文本文件读取数组(如 CSV),功能更强大
data = np.genfromtxt("d:/log/txt1.txt", delimiter="\t", encoding="utf-8", dtype=np.int32, skip_header=1, skip_footer=0, usecols=(1, 2, 3))
print(data)
30、numpy.fromfile()
从二进制文件读取数据(适用于 .raw 文件)
31、numpy.load()
从 .npy 或 .npz 文件中加载数组
32、numpy.fromfunction()
自定义函数生成数组
def func(i, j):return i + jprint(np.fromfunction(func, (2, 3), dtype=np.int32))[[0 1 2][1 2 3]]
33、numpy.fromiter()
从可迭代对象创建数组
it = (x * x for x in range(5))
print(np.fromiter(it, dtype=np.int32))
34、numpy.tile()
重复已有数组,构建新数组
# 2行2列
print(np.tile([1, 2], (2, 2)))# 2行2列
a = np.array((1, 2))
print(np.tile(a, (2, 2)))
35、numpy.repeat()
重复数据元素构建新数组
print(np.repeat([1, 2], 3))a = np.array([[1, 2], [3, 4]])
print(np.repeat(a, 2))