对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在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
使用requests库制作Python爬虫
Mar 25 Python
Python之读取TXT文件的方法小结
Apr 27 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
Python TestCase中的断言方法介绍
May 02 Python
Python之pymysql的使用小结
Jul 01 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
Python Socket编程详解
Apr 25 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实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
javascript:void(0)使用探讨
2013/08/27 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
Python实现的多线程端口扫描工具分享
2015/01/21 Python
python Django模板的使用方法
2016/01/14 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
python实现按长宽比缩放图片
2018/06/07 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python操作文件的参数整理
2019/06/11 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
python如何求圆的面积
2020/07/01 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
历史系毕业生自荐信
2013/10/28 职场文书
十佳护士获奖感言
2014/02/18 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
后备干部培训方案
2014/05/22 职场文书
创业计划书之甜品店
2019/09/18 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android