合并
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.]]) 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. ],[-0.09666833,axis=1) #在横轴上合并 Out[10]: array([[ 1.,...,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,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,3,4],[ 5,6,7,12,13,14]]) arr.ravel('F') #按照列优先,扁平化。 Out[30]: array([ 0,10,4,9,14]) arr.ravel() Out[31]: array([ 0,14]) arr.reshape((5,3),order='F') # Fortran 顺序 Out[32]: array([[ 0,8],13],[ 1,[ 6,14]]) arr.reshape((5,order='C') Out[33]: array([[ 0,2],[ 3,5],[ 9,11],[12,14]])
以上这篇对numpy和pandas中数组的合并和拆分详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。