Python Numpy模块函数np.c_和np.r_学习使用

本文介绍numpy库中的np.c_和np.r_函数使用方法。np.r_用于按行连接矩阵,类似pandas.concat();np.c_用于按列连接矩阵,类似pandas.merge()。文章通过示例演示如何使用这两个函数来处理数据矩阵。

    今天遇上一个矩阵的小问题需要操作数据矩阵,本来想自己写函数的,可是查了一下发现居然还真的有现成的这样的函数可以直接使用,就省事了好多了,简单记录一下。

#!usr/bin/env python
#encoding:utf-8


'''
__Author__:沂水寒城
功能: numpy函数np.c_和np.r_学习使用
'''

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import numpy as np

def test():
    '''
    numpy函数np.c_和np.r_学习使用
    '''
    data_list1=[4,6,12,6,0,3,7]
    data_list2=[1,5,2,65,6,7,3]
    data_list3=[1,5,2,65,6]
    print u'np.r_  data_list1和data_list2合并'
    print np.r_[data_list1,data_list2]
    print u'np.r_  data_list1和data_list3合并'
    print np.r_[data_list1,data_list3]


    print u'np.c_ data_list1和data_list2合并'
    print np.c_[data_list1,data_list2]
    print u'np.c_ data_list1和data_list3合并'
    print np.c_[data_list1,data_list3]


if __name__=='__main__':
    test()

结果如下:

np.r_  data_list1和data_list2合并
[ 4  6 12  6  0  3  7  1  5  2 65  6  7  3]
np.r_  data_list1和data_list3合并
[ 4  6 12  6  0  3  7  1  5  2 65  6]
np.c_ data_list1和data_list2合并
 [[ 4  1]
 [ 6  5]
 [12  2]
 [ 6 65]
 [ 0  6]
 [ 3  7]
 [ 7  3]]
np.c_ data_list1和data_list3合并
ValueError: all the input array dimensions except for the concatenation axis must match exactly
[Finished in 0.2s with exit code 1]

简单地总结一下用法就是:

np.r_是按行连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat()

np.c_是按列连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的merge()

简单记录一下,备忘

### 解决 NumPy 版本打印错误的方法 当遇到 `ValueError: numpy.dtype size changed` 错误时,这通常表明当前环境中存在多个不同版本的 NumPy 或者安装不兼容的情况。以下是针对该问题的具体分析解决方案: #### 1. **环境冲突** 此错误可能源于 Python 环境中的 NumPy 安装与其他库或模块之间的二进制不兼容[^1]。建议重新创建虚拟环境并仅安装所需的依赖项。 ```bash # 创建新的虚拟环境 (venv) python -m venv clean_env # 激活虚拟环境 source clean_env/bin/activate # Linux/MacOS clean_env\Scripts\activate # Windows # 升级 pip 并安装最新版 NumPy pip install --upgrade pip pip install numpy ``` #### 2. **检查已安装的 NumPy 版本** 确认当前使用NumPy 是否为预期版本,并验证其是否与操作系统其他依赖项兼容。 ```python import numpy as np print(np.__version__) ``` 如果发现版本过旧或者异常,则可以通过以下命令更新至最新稳定版本: ```bash pip install --force-reinstall numpy==<specific_version> ``` #### 3. **加载 `.npy` 文件时的注意事项** 在使用 `numpy.load()` 函数读取 `.npy` 文件时,需注意参数设置以避免潜在问题[^2]。例如,默认情况下禁用了 pickle 支持 (`allow_pickle=False`) 来提高安全性;但如果数据确实涉及复杂对象序列化,则应显式启用它。 ```python data = np.load('example.npy', allow_pickle=True) ``` #### 4. **嵌入式 Python 的特殊处理** 对于某些特定场景(如嵌入式开发),可能会因为缺少必要的支持文件而导致功能受限[^3]。此时可以尝试手动指定路径或将所需资源复制到目标位置。 --- ### 示例代码:验证 NumPy 功能正常运行 下面提供一段简单测试程序用于检验修复后的状态是否良好[^4]: ```python import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) dot_result = np.dot(A[0][0], B[0][0]) print(f'Dot Product Result={dot_result}') ``` 上述脚本执行成功即证明基本运算无碍。 ---
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值