对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使用多线程不断刷新网页的方法
Mar 31 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
python实现可变变量名方法详解
Jul 01 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
Python 变量的创建过程详解
Sep 02 Python
python实现程序重启和系统重启方式
Apr 16 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
pytorch Dropout过拟合的操作
May 27 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 CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
PHP多进程编程实例详解
2017/07/19 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
AngularJS快速入门
2015/04/02 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
python 多线程串行和并行的实例
2019/02/22 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
公司前台接待岗位职责
2013/12/03 职场文书
大学四年的个人自我评价
2014/01/14 职场文书
小学三年级学生评语
2014/04/22 职场文书
个人校本研修方案
2014/05/26 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL