对numpy和pandas中数组的合并和拆分详解
作者:zhanshirj 时间:2021-04-23 22:51:50
合并
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]])
来源:https://blog.csdn.net/zhanshirj/article/details/73302401
标签:pandas,numpy,数组,合并,拆分
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实现设置windows桌面壁纸代码分享
2022-03-23 03:52:46
精致的web设计
2009-12-04 19:07:00
python爬虫中采集中遇到的问题整理
2022-10-17 03:32:23
Python实现基于HTTP文件传输实例
2021-10-23 13:24:53
ASP获取当前页面URL地址(带参数)的方法
2010-01-14 19:40:00
js自定义网页右键菜单方法
2007-11-28 12:50:00
关于ASP中的类class
2007-08-19 15:37:00
最新CSS兼容方案
2008-08-13 13:20:00
sublime text配置node.js调试(图文教程)
2023-07-04 14:07:57
![](https://img.aspxhome.com/file/2023/8/55898_0s.png)
缓存是如何实现的?
2009-11-01 15:35:00
超简单的Python HTTP服务
2023-01-22 06:19:15
Oracle中命名块之存储过程的详解及使用方法
2023-07-15 00:28:23
九宫格基本布局
2009-06-18 18:36:00
![](https://img.aspxhome.com/file/UploadPic/20096/18/01-34s.gif)
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2023-08-29 20:25:40
Python单链表原理与实现方法详解
2023-05-21 00:58:37
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2023-03-08 19:38:19
在python下读取并展示raw格式的图片实例
2022-07-02 18:47:56
asp如何实现无组件上传二进制文件?
2010-06-03 10:09:00
Python实现像awk一样分割字符串
2022-07-29 18:42:07
![](https://img.aspxhome.com/file/2023/8/86158_0s.jpg)
python利用pandas将excel文件转换为txt文件的方法
2022-04-05 18:49:01