对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装饰器验证配置文件示例
Feb 24 Python
Python实现的彩票机选器实例
Jun 17 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python基于物品协同过滤算法实现代码
May 31 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
python日志模块logbook使用方法
Sep 19 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
简单的命令查看安装的python版本号
Aug 28 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 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 curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
vue服务端渲染缓存应用详解
2018/09/12 Javascript
vue debug 二种方法
2018/09/16 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
Python自带的IDE在哪里
2020/07/01 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
摄影实习自我鉴定
2013/09/20 职场文书
客服服务心得体会
2013/12/30 职场文书
写给保洁员表扬信
2014/01/08 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
实习介绍信范文
2015/05/05 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS