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

NumPy 中 np.c_ 的用法解析

NumPy 中 np.c_ 的用法解析

np.c_ 是 NumPy 用于沿列方向(第二轴)拼接数组的快捷工具,特别适用于将一维数组组合为二维数组的列。其核心功能是将输入数组按列堆叠,语法为 np.c_[array1, array2, ...]。以下结合 ravel 后的 xxyy 数组场景详细说明:

1. 基础用法:连接一维数组

假设 xxyy 是两个一维数组(或通过 ravel() 展平后的数组):

import numpy as npxx = np.array([1, 2, 3])
yy = np.array([4, 5, 6])
combined = np.c_[xx, yy]  # 沿列方向拼接

结果:
[142536] \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} 123456
此时 combined 是一个 3×23 \times 23×2 的二维数组,每列对应原始数组。


2. 连接 ravel 后的数组

xxyy 是二维数组(如网格矩阵),需先展平再连接:

# 生成网格坐标
x = np.linspace(0, 1, 3)  # [0, 0.5, 1]
y = np.linspace(0, 1, 2)  # [0, 1]
xx, yy = np.meshgrid(x, y)  # xx.shape=(2,3), yy.shape=(2,3)# 展平后按列拼接
points = np.c_[xx.ravel(), yy.ravel()]

结果:
[000.5010010.5111] \begin{bmatrix} 0 & 0 \\ 0.5 & 0 \\ 1 & 0 \\ 0 & 1 \\ 0.5 & 1 \\ 1 & 1 \end{bmatrix} 00.5100.51000111
每行表示一个坐标点 (xi,yi)(x_i, y_i)(xi,yi),总行数 = xx.size(或 yy.size)。


3. 关键特性
  • 自动维度提升
    若输入为一维数组,np.c_ 自动将其视为列向量(形状 (n,)(n,1))。
  • 轴方向
    沿第二轴(列)拼接,等价于 np.column_stack,区别于行拼接的 np.r_
  • 长度匹配
    所有输入数组在展平后必须有相同长度,否则报错 ValueError

4. 典型应用场景
  • 机器学习数据集:将特征 XXX 和标签 yyy 合并为训练数据。
  • 坐标生成:将网格坐标 xx, yy 展平为点集(如绘图或空间计算)。
  • 数据预处理:合并多个特征列(如 np.c_[feature1, feature2])。
5. 调试建议

若结果不符合预期:

  1. 检查输入数组维度:确保通过 xx.ravel() 展平为一维。
  2. 验证长度一致性:len(xx.ravel()) == len(yy.ravel())
  3. 替代方案对比:
    # 等效于 np.c_[xx, yy]
    np.column_stack((xx.ravel(), yy.ravel()))
    np.hstack((xx.ravel()[:, None], yy.ravel()[:, None]))  # 显式转列向量
    

相关问题

  1. np.c_np.r_ 在拼接数组时有何本质区别?
  2. 当输入数组维度不同时(如一维和二维),np.c_ 如何处理?
  3. 如何用 np.concatenatenp.hstack 实现 np.c_ 的功能?

: 引用基于 NumPy 官方文档中数组操作指南。

http://www.lryc.cn/news/587374.html

相关文章:

  • Can I Trust Your Answer? Visually Grounded Video Question Answering
  • Python协程进阶:优雅终止与异常处理详解
  • Java 面向对象的特征(一)
  • Actor-Critic重要性采样原理
  • 在高并发场景下,仅依赖数据库机制(如行锁、版本控制)无法完全避免数据异常的问题
  • 用豆包AI云盘保存和分析录音文件
  • 维基艺术图片: 数据标注 (2)
  • java: DDD using oracle 21c
  • 树莓派5-ollama-linux-arm64.tgz 下载
  • KL散度:信息差异的量化标尺 | 从概率分布对齐到模型优化的核心度量
  • 强化学习初探及OREAL实践
  • Leaflet面试题及答案(61-80)
  • Flink数据流高效写入MySQL实战
  • XCZU2CG-2SFVC784I Xilinx FPGA AMD Zynq UltraScale+ MPSoC
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • 六、深度学习——NLP
  • 无缝衔接直播流体验
  • 早期 CNN 的经典模型—卷积神经网络(LeNet)
  • 板凳-------Mysql cookbook学习 (十一--------8)
  • 【深度学习新浪潮】什么是新视角合成?
  • STM32-第五节-TIM定时器-1(定时器中断)
  • JAVA并发——synchronized的实现原理
  • 特征选择方法
  • 一文打通MySQL任督二脉(事务、索引、锁、SQL优化、分库分表)
  • GraphRAG Docker化部署,接入本地Ollama完整技术指南:从零基础到生产部署的系统性知识体系
  • AEC线性处理
  • 【iOS】方法与消息底层分析
  • 【设计模式】命令模式 (动作(Action)模式或事务(Transaction)模式)宏命令
  • phpMyAdmin:一款经典的MySQL在线管理工具又回来了
  • 【RA-Eco-RA6E2-64PIN-V1.0 开发板】ADC 电压的 LabVIEW 数据采集