上一篇我们认识了NumPy的核心地位和ndarray数组的基础概念,知道了它是NumPy的灵魂。想要玩转数值计算,第一步就是学会创建不同类型的ndarray数组。
本篇作为系列第二篇,专门整理了日常工作、实战中最常用的数组创建方法,从基础手动创建,到快速生成特殊数组,代码直接复制就能用,新手也能快速掌握~
最基础的创建方式,把原生Python列表、元组直接转为ndarray数组,适合小批量数据快速转换:
import numpy as np# 一维数组创建arr1 = np.array([1,2,3,4,5])print("一维数组:\n", arr1)# 二维数组(类似表格)创建arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])print("二维数组:\n", arr2)# 从元组创建数组arr_from_tuple = np.array((10,20,30,40))print("元组转数组:\n", arr_from_tuple)

不用手动输入数据,一行代码生成连续、等差、固定步长的数组,处理规律数据必备:
np.arange():生成等差数组,类似range(),支持浮点数
np.linspace():生成指定数量的均分数组,包含起止值
# 生成0-9的整数数组arr_arange1 = np.arange(10)# 生成2-10,步长为2的数组arr_arange2 = np.arange(2,10,2)# 生成0-10之间,均分5个元素的数组arr_linspace = np.linspace(0,10,5)print("arange生成:", arr_arange1)print("等差步长生成:", arr_arange2)print("均分数组:", arr_linspace)

这类数组在数据初始化、占位、矩阵运算中高频使用,必须牢记:
np.zeros():生成全0数组
np.ones():生成全1数组
np.full():生成指定数值的数组
np.eye():生成单位矩阵(对角线为1,其余为0)
# 2行3列全0数组zero_arr = np.zeros((2,3))# 3行3列全1数组one_arr = np.ones((3,3))# 2行2列,全为6的数组full_arr = np.full((2,2),6)# 4阶单位矩阵eye_arr = np.eye(4)print("全0数组:\n", zero_arr)print("单位矩阵:\n", eye_arr)

做数据测试、模拟样本、机器学习随机初始化时,随机数组必不可少:
np.random.rand():生成0-1之间均匀分布随机数
np.random.randn():生成标准正态分布随机数
np.random.randint():生成指定范围整数随机数
# 2行3列0-1随机数rand_arr = np.random.rand(2,3)# 1-10之间,5个随机整数randint_arr = np.random.randint(1,10,5)print("随机浮点数数组:\n", rand_arr)print("随机整数数组:", randint_arr)

创建多维数组时,维度用元组表示,比如(2,3)代表2行3列;
arange不包含结束值,linspace包含结束值,注意区分;
随机数每次运行结果不同,可加np.random.seed()固定随机种子。
本篇我们掌握了NumPy数组的所有常用创建方法,覆盖基础、规律、特殊、随机四大类,足够应对日常数据初始化需求。第三篇我们将学习数组的核心属性、索引与切片,精准提取数组内任意数据,彻底搞定数组操控~