## 一、`np.full` 函数:快速创建指定值填充的数组### 功能
`np.full` 用于生成一个指定形状(shape)和数据类型(dtype)的数组,所有元素均填充为用户指定的固定值 [[3]][[8]]。### 语法
```python
np.full(shape, fill_value, dtype=None)
-
shape
:数组形状,可以是整数(一维数组)或元组(多维数组),例如(3, 4)
表示 3 行 4 列 [[8]]。 -
fill_value
:填充数组的固定值,例如1
、0.5
或字符串"Hello"
。 -
dtype
:可选参数,指定数组的数据类型(默认与fill_value
类型一致)。
示例
Python复制
import numpy as np# 创建 2x3 数组,所有元素为 5
arr = np.full((2, 3), 5)
print(arr)
# 输出:
# [[5 5 5]
# [5 5 5]]# 创建包含浮点数的 1x4 数组
arr_float = np.full(4, 3.14)
print(arr_float) # 输出:[3.14 3.14 3.14 3.14]
应用场景
-
初始化占位数组:在机器学习中,常用于生成全 1 的列向量(如添加偏置项)[[3]]。
-
快速生成测试数据:填充固定值以验证算法逻辑。
二、np.concatenate
函数:灵活拼接数组
功能
np.concatenate
沿指定轴(axis)将多个数组合并为一个新数组 [[7]][[9]]。要求所有输入数组在非拼接轴上的维度必须一致。
语法
Python复制
np.concatenate((a1, a2, ...), axis=0)
-
a1, a2, ...
:需要拼接的数组序列,需保证形状兼容 [[9]]。 -
axis
:拼接轴方向,默认axis=0
(垂直拼接),axis=1
表示水平拼接 [[7]]。
示例
Python复制
import numpy as np# 垂直拼接(沿 axis=0)
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
result = np.concatenate((a, b), axis=0)
print(result)
# 输出:
# [[1 2]
# [3 4]
# [5 6]]# 水平拼接(沿 axis=1)
c = np.array([[7], [8], [9]])
result = np.concatenate((a, c), axis=1)
print(result)
# 输出:
# [[1 2 7]
# [3 4 8]]
注意事项
-
形状兼容性:若
axis=1
,所有数组的行数必须相同;若axis=0
,列数必须相同 [[7]]。 -
替代函数:
np.append
是np.concatenate
的简化版,但效率较低,推荐优先使用concatenate
[[7]]。
三、联合使用场景
在机器学习中,np.full
和 np.concatenate
常结合使用。例如,为特征矩阵 X
添加全 1 的偏置列:
Python复制
X = np.random.rand(100, 5) # 100 个样本,5 个特征
bias = np.full((X.shape[0], 1), 1) # 生成全 1 列向量 [[3]]
X_with_bias = np.concatenate([X, bias], axis=1) # 拼接后形状为 (100, 6)
四、总结
-
np.full
:快速生成固定值数组,适用于初始化或占位 [[3]][[8]]。 -
np.concatenate
:灵活合并数组,需注意形状和轴方向的匹配 [[7]][[9]]。
通过这两个函数,可以高效完成数组的创建与操作,是科学计算和数据分析中的常用工具。