对numpy和pandas中数组的合并和拆分详解


Posted in Python onApril 11, 2018

合并

numpy中

numpy中可以通过concatenate,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。

import numpy as np
import pandas as pd
arr1=np.ones((3,5))
arr1
Out[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)
arr2
Out[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]])
np.hstack([arr1,arr2]) # 水平 horizon 
np.vstack([arr1,arr2]) # 垂直 vertical

pandas中

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

from pandas import DataFrame
frame1=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  2
0  1  2  3
1  4  5  6
0  7  8  9
1 10 11 12
pd.concat([frame1,frame2],axis=1,ignore_index=True)
Out[27]: 
  0 1 2  3  4  5
0 1 2 3  7  8  9
1 4 5 6 10 11 12

拆分

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

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

arr=np.arange(15).reshape(3,-1)
arr
Out[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()
Out[31]: array([ 0, 1, 2, ..., 12, 13, 14])
arr.reshape((5,3),order='F') # Fortran 顺序
Out[32]: 
array([[ 0, 11, 8],
    [ 5, 2, 13],
    [10, 7, 4],
    [ 1, 12, 9],
    [ 6, 3, 14]])
 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中数组的合并和拆分详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用scrapy解析js示例
Jan 23 Python
跟老齐学Python之复习if语句
Oct 02 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
python版本的仿windows计划任务工具
Apr 30 Python
python 字符串和整数的转换方法
Jun 25 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python 监测文件是否更新的方法
Jun 10 Python
python绘制地震散点图
Jun 18 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 #Python
深入浅析python with语句简介
Apr 11 #Python
python实现微信自动回复功能
Apr 11 #Python
Python实现检测文件MD5值的方法示例
Apr 11 #Python
python 输出上个月的月末日期实例
Apr 11 #Python
Python简单计算文件MD5值的方法示例
Apr 11 #Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 #Python
You might like
php中的实现trim函数代码
2007/03/19 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python人人网登录应用实例
2014/09/26 Python
Python中实现常量(Const)功能
2015/01/28 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
Python如何读取文件中图片格式
2020/01/13 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
杭州-DOTNET笔试题集
2013/09/25 面试题
员工自我鉴定范文
2013/10/06 职场文书
应届生财务会计求职信
2013/11/05 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
财务统计员岗位职责
2015/04/14 职场文书
被委托人身份证明
2015/08/07 职场文书
教师培训学习心得体会
2016/01/21 职场文书
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS