当前位置: 首页 > news >正文

NumPy 函数用法详解:np.full 和 np.concatenate

## 一、`np.full` 函数:快速创建指定值填充的数组

### 功能
`np.full` 用于生成一个指定形状(shape)和数据类型(dtype)的数组,所有元素均填充为用户指定的固定值 [[3]][[8]]。

### 语法
```python
np.full(shape, fill_value, dtype=None)
  • shape:数组形状,可以是整数(一维数组)或元组(多维数组),例如 (3, 4) 表示 3 行 4 列 [[8]]。

  • fill_value:填充数组的固定值,例如 10.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.appendnp.concatenate 的简化版,但效率较低,推荐优先使用 concatenate [[7]]。

三、联合使用场景

在机器学习中,np.fullnp.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]]。

通过这两个函数,可以高效完成数组的创建与操作,是科学计算和数据分析中的常用工具。

相关文章:

  • MySQL数据库中的行锁
  • Qt MainWindow简单例子(文本编辑)
  • generallseteter插件生成内容和数据库不一致
  • 基于javaweb的SpringBoot博客商城管理系统设计与实现(源码+文档+部署讲解)
  • dart学习记录2
  • 基于STM32计时秒表设计Proteus仿真+程序+设计报告+原理图PCB+讲解视频
  • python中有几种作用域
  • 传输层自学
  • 配置单区域OSPF实验和报文抓包和分析
  • 51单片机的工作方式
  • 从模型到应用:大语言模型生态系统完全指南
  • 1.Windows+vscode+cline+MCP配置
  • HarmonyOS NEXT开发进阶(十三):网络请求封装
  • 目标:掌握无位置传感器(FOC)控制PMSM的设计与实现
  • 【go】Go 语言中 errors.Is 和 errors.As 的区别
  • RxSwift 学习笔记第三篇之RxSwift的Observer
  • WIN11开发环境变量记录
  • pyjail逃逸姿势
  • 计算机四级 - 数据库原理 - 第3章 「关系数据库系统概述」
  • React(二):JSX语法解析+综合案例
  • 王毅:为改革完善全球治理作出金砖贡献
  • 新造古镇丨上海古镇朱家角一年接待164万境外游客,凭啥?
  • 外交部:印度香客赴中国西藏神山圣湖朝圣将于今年夏季恢复
  • 科学时代重读“老子”的意义——对谈《老子智慧八十一讲》
  • 人社部:将会同更多部门分行业、分领域制定专项培训计划
  • 今年3月全国查处违反中央八项规定精神问题16994起