对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求众数问题实例
Sep 26 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
python制作简单五子棋游戏
Jun 18 Python
python处理大日志文件
Jul 23 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
python装饰器三种装饰模式的简单分析
Sep 04 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水印技术
2007/02/14 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
js表格分页实现代码
2009/09/18 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
Python实现冒泡排序的简单应用示例
2017/12/11 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
利用python进行文件操作
2020/12/04 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
.net C#面试题
2012/08/28 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
后勤主管岗位职责
2014/03/01 职场文书
商业房地产广告语
2014/03/13 职场文书
大学生求职计划书
2014/04/30 职场文书
安全月宣传标语
2014/10/07 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
2016年元旦主持词
2015/07/06 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis