对numpy和pandas中数组的合并和拆分详解

 更新时间:2018年04月11日 15:00:05   作者:zhanshirj  
下面小编就为大家分享一篇对numpy和pandas中数组的合并和拆分详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

合并

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使用PIL进行JPEG图像压缩的简易教程

    Python使用PIL进行JPEG图像压缩的简易教程

    本文介绍了如何使用Python编程语言和wxPython图形用户界面库进行JPEG图像的压缩,通过添加滑块控件,我们可以调整压缩质量,并将压缩后的照片另存为原来的名称加上后缀"压缩+质量数字"的新文件,需要的朋友可以参考下
    2023-09-09
  • Python模拟登录和登录跳转的参考示例

    Python模拟登录和登录跳转的参考示例

    这篇文章主要介绍了Python模拟登录和登录跳转的参考示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • PyCharm连接远程服务器的超级详细教程

    PyCharm连接远程服务器的超级详细教程

    Pycharm可以与服务器建立连接,把相应的项目同步到服务器上,下面这篇文章主要给大家介绍了关于PyCharm连接远程服务器的超级详细教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Anaconda环境克隆、迁移的详细步骤

    Anaconda环境克隆、迁移的详细步骤

    最近需要在多台计算机上工作,每次重新部署环境比较麻烦,所以学习一下anaconda环境迁移的方法,下面这篇文章主要给大家介绍了关于Anaconda环境克隆、迁移的详细步骤,需要的朋友可以参考下
    2022-08-08
  • Python使用ConfigParser模块操作配置文件的方法

    Python使用ConfigParser模块操作配置文件的方法

    这篇文章主要介绍了Python使用ConfigParser模块操作配置文件的方法,结合实例形式分析了Python基于ConfigParser模块针对配置文件的创建、读取、写入、判断等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • pymysql模块的操作实例

    pymysql模块的操作实例

    在本篇文章里小编给大家分享的是关于pymysql模块的简单操作,有需要的朋友们可以参考下。
    2019-12-12
  • python tiktoken的简介、安装、使用方法

    python tiktoken的简介、安装、使用方法

    tiktoken是OpenAI于近期开源的Python第三方模块,该模块主要实现了tokenizer的BPE(Byte pair encoding)算法,并对运行性能做了极大的优化,本文将介绍python tiktoken的简介、安装、使用方法,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • python cumsum函数的具体使用

    python cumsum函数的具体使用

    这篇文章主要介绍了python cumsum函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python中zip()函数遍历多个列表方法

    python中zip()函数遍历多个列表方法

    在本篇文章里小编给大家整理的是一篇关于python中zip()函数遍历多个列表方法,对此有兴趣的朋友们可以学习下。
    2021-02-02
  • python将二维数组升为一维数组或二维降为一维方法实例

    python将二维数组升为一维数组或二维降为一维方法实例

    在实际应用的过程中,遇到列表或是数组的维数不同,需要变换的问题,如二维列表/数组变成了一维列表/数组,下面这篇文章主要给大家介绍了关于python将二维数组升为一维数组或二维降为一维的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论