對numpy和pandas中數(shù)組的合并和拆分詳解
合并
numpy中
numpy中可以通過concatenate,指定參數(shù)axis=0 或者 axis=1,在縱軸和橫軸上合并兩個(gè)數(shù)組。
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方法實(shí)現(xiàn)合并,指定參數(shù)axis=0 或者 axis=1,在縱軸和橫軸上合并兩個(gè)數(shù)組。與numpy不同,這里的兩個(gè)dataframe要放在一個(gè)列表中,即[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) # 合并的數(shù)組是一個(gè)可迭代的列表。 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
拆分
默認(rèn)情況下,Numpy數(shù)組是按行優(yōu)先順序創(chuàng)建。在空間方面,這就意味著,對于一個(gè)二維數(shù)字,每行中的數(shù)據(jù)項(xiàng)是存放在內(nèi)在中相鄰的位置上的。另一種順序是列優(yōu)先。
由于歷史原因,行優(yōu)先和列優(yōu)先又分別被稱為C和Fortran順序。在Numpy中,可以通過關(guān)鍵字參數(shù)order='C' 和order='F' 來實(shí)現(xiàn)行優(yōu)先和列優(yōu)先。
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') #按照列優(yōu)先,扁平化。
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中數(shù)組的合并和拆分詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Python如何實(shí)現(xiàn)K-means聚類算法
聚類算法有很多種(幾十種),K-Means是聚類算法中的最常用的一種,算法最大的特點(diǎn)是簡單,好理解,運(yùn)算速度快,下面這篇文章主要給大家介紹了關(guān)于利用Python如何實(shí)現(xiàn)K-means聚類算法的相關(guān)資料,需要的朋友可以參考下2021-08-08
django框架之cookie/session的使用示例(小結(jié))
這篇文章主要介紹了django框架之cookie/session的使用示例(小結(jié)),詳細(xì)的介紹了cookie和session技術(shù)的接口獲取等問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
在Mac OS上搭建Python的開發(fā)環(huán)境
這篇文章主要介紹了在Mac OS上搭建Apache服務(wù)器和Python解釋器的開發(fā)環(huán)境,雖然Mac OS上自帶Python但往往難以滿足開發(fā)者對版本的需求,需要的朋友可以參考下2015-12-12
python3中類的繼承以及self和super的區(qū)別詳解
今天小編就為大家分享一篇python3中類的繼承以及self和super的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python使用melt和pivot實(shí)現(xiàn)DataFrame格式轉(zhuǎn)換
在數(shù)據(jù)處理與分析中,經(jīng)常遇到數(shù)據(jù)需要進(jìn)行格式轉(zhuǎn)換的情況,例如將數(shù)據(jù)從寬表格式轉(zhuǎn)換為長表格式,或?qū)?shù)據(jù)重新分組匯總,Pandas提供了豐富的reshape操作,尤其是melt和pivot這兩個(gè)函數(shù),使得DataFrame可以在寬表與長表之間高效轉(zhuǎn)換,本文介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Spring Boot中使用IntelliJ IDEA插件EasyCode一鍵生成代碼詳細(xì)方法
這篇文章主要介紹了Spring Boot中使用IntelliJ IDEA插件EasyCode一鍵生成代碼詳細(xì)方法,需要的朋友可以參考下2020-03-03
Python語言實(shí)現(xiàn)將圖片轉(zhuǎn)化為html頁面
這篇文章主要介紹了Python實(shí)現(xiàn)將圖片轉(zhuǎn)化為html頁面,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12

