侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

numpy和pandas中数组的合并、拉直和重塑实例

Python  /  管理员 发布于 5年前   540

合并

在numpy中合并两个array

numpy中可以通过concatenate,参数axis=0表示在垂直方向上合并两个数组,等价于np.vstack;参数axis=1表示在水平方向上合并两个数组,等价于np.hstack。

垂直方向:

np.concatenate([arr1,arr2],axis=0)np.vstack([arr1,arr2])

水平方向:

np.concatenate([arr1,arr2],axis=1)np.hstack([arr1,arr2])
import numpy as npimport pandas as pdarr1=np.ones((3,5))arr1Out[5]: array([[ 1., 1., 1., 1., 1.],    [ 1., 1., 1., 1., 1.],    [ 1., 1., 1., 1., 1.]])    arr2=np.random.randn(15).reshape(arr1.shape)arr2Out[8]: array([[-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],    [ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],    [ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])    np.concatenate([arr1,arr2],axis=0) #在纵轴上合并Out[9]: array([[ 1.    , 1.    , 1.    , 1.    , 1.    ],    [ 1.    , 1.    , 1.    , 1.    , 1.    ],    [ 1.    , 1.    , 1.    , 1.    , 1.    ],    [-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],    [ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],    [ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])np.concatenate([arr1,arr2],axis=1) #在横轴上合并Out[10]: array([[ 1.    , 1.    , 1.    , ..., -1.94608976,     0.2651279 , -0.32894787],    [ 1.    , 1.    , 1.    , ..., 1.49607091,     0.79216196, 0.33246644],    [ 1.    , 1.    , 1.    , ..., 0.77830394,    -0.90519422, 1.55410056]])           

在pandas中合并两个DataFrame

pandas中通过concat方法实现合并,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。与numpy不同,这里的两个dataframe要放在一个列表中,即[frame1,frame2]

from pandas import DataFrameframe1=DataFrame([[1,2,3],[4,5,6]])frame2=DataFrame([[7,8,9],[10,11,12]])pd.concat([frame1,frame2], ignore_index=True) # 合并的数组是一个可迭代的列表。Out[25]:   0  1  20  1  2  31  4  5  60  7  8  91 10 11 12pd.concat([frame1,frame2], axis=1, ignore_index=True)Out[27]:   0 1 2  3  4  50 1 2 3  7  8  91 4 5 6 10 11 12

拉直和重塑

拉直即把一个二维的array变成一个一维的array。默认情况下,Numpy数组是按行优先顺序创建。在空间方面,这就意味着,对于一个二维数字,每行中的数据项是存放在内在中相邻的位置上的。另一种顺序是列优先。

由于历史原因,行优先和列优先又分别被称为C和Fortran顺序。在Numpy中,可以通过关键字参数order=‘C' 和order=‘F' 来实现行优先和列优先。

拉直:

arr=np.arange(15).reshape(3,-1)arrOut[29]: array([[ 0, 1, 2, 3, 4],    [ 5, 6, 7, 8, 9],    [10, 11, 12, 13, 14]])    arr.ravel('F') #按照列优先,扁平化。Out[30]: array([ 0, 5, 10, ..., 4, 9, 14])arr.ravel('C') # 默认顺序。#按照行优先,扁平化。Out[31]: array([ 0, 1, 2, ..., 12, 13, 14])

重塑:

Fortran顺序重塑后按列拉直和原数据按列拉直一样。

arr.reshape((5,3),order='F') Out[32]: array([[ 0, 11, 8],    [ 5, 2, 13],    [10, 7, 4],    [ 1, 12, 9],    [ 6, 3, 14]])

C顺序重塑后按行拉直和原数据按行拉直一样。

 arr.reshape((5,3),order='C') Out[33]: array([[ 0, 1, 2],    [ 3, 4, 5],    [ 6, 7, 8],    [ 9, 10, 11],    [12, 13, 14]])

以上这篇numpy和pandas中数组的合并、拉直和重塑实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


  • 上一条:
    解决pycharm运行程序出现卡住scanning files to index索引的问题
    下一条:
    浅谈Pandas Series 和 Numpy array中的相同点
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客