对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 client使用http post 到server端的代码
Feb 10 Python
Python使用新浪微博API发送微博的例子
Apr 10 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
python字符串连接方法分析
Apr 12 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
keras中的backend.clip用法
May 22 Python
python 带时区的日期格式化操作
Oct 23 Python
pycharm永久激活超详细教程
Oct 29 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
Python一些基本的图像操作和处理总结
Jun 23 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
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
SVG描边动画
2017/02/23 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
python3生成随机数实例
2014/10/20 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python中Unittest框架的具体使用
2019/08/27 Python
python标准库os库的函数介绍
2020/02/12 Python
Python多分支if语句的使用
2020/09/03 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
企业总经理职责
2014/02/02 职场文书
同事吵架检讨书
2014/02/05 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
降价通知函
2015/04/23 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis