合并
在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中数组的合并、拉直和重塑实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]