numpy和pandas中数组的合并、拉直和重塑实例


Posted in Python onJune 28, 2019

合并

在numpy中合并两个array

numpy中可以通过concatenate,参数axis=0表示在垂直方向上合并两个数组,等价于np.vstack;参数axis=1表示在水平方向上合并两个数组,等价于np.hstack。

垂直方向:

np.concatenate([arr1,arr2],axis=0)
np.vstack([arr1,arr2])

水平方向:

np.concatenate([arr1,arr2],axis=1)
np.hstack([arr1,arr2])
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]])

在pandas中合并两个DataFrame

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

拉直和重塑

拉直即把一个二维的array变成一个一维的array。默认情况下,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('C') # 默认顺序。#按照行优先,扁平化。
Out[31]: array([ 0, 1, 2, ..., 12, 13, 14])

重塑:

Fortran顺序重塑后按列拉直和原数据按列拉直一样。

arr.reshape((5,3),order='F') 
Out[32]: 
array([[ 0, 11, 8],
    [ 5, 2, 13],
    [10, 7, 4],
    [ 1, 12, 9],
    [ 6, 3, 14]])

C顺序重塑后按行拉直和原数据按行拉直一样。

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读写excel的方法
Nov 18 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
Python读写docx文件的方法
May 08 Python
Python读取txt某几列绘图的方法
Oct 14 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
利用nohup来开启python文件的方法
Jan 14 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
python实现ftp文件传输功能
Mar 20 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
Python hashlib模块的使用示例
Oct 09 Python
python-jwt用户认证食用教学的实现方法
Jan 19 Python
使用Python画股票的K线图的方法步骤
Jun 28 #Python
连接pandas以及数组转pandas的方法
Jun 28 #Python
python3实现猜数字游戏
Dec 07 #Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 #Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 #Python
使用Python中的reduce()函数求积的实例
Jun 28 #Python
centos 安装Python3 及对应的pip教程详解
Jun 28 #Python
You might like
PHP学习之PHP表达式
2006/10/09 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
python实时监控logstash日志代码
2020/04/27 Python
python爬虫---requests库的用法详解
2020/09/28 Python
python 实现批量图片识别并翻译
2020/11/02 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
精彩的推荐信范文
2013/11/26 职场文书
合作协议书范本
2014/04/17 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
表扬信格式模板
2015/05/05 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
酒会开场白大全
2015/06/01 职场文书
会议新闻稿
2015/07/17 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
只用Python就可以制作的简单词云
2021/06/07 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python