栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy数组叠加

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy数组叠加

关于numpy的储存形式以及np.r_和np.c_以及hstack和vstack的使用

文章目录
  • 关于numpy的储存形式以及np.r_和np.c_以及hstack和vstack的使用
  • 前言
    • 针对于一维数组的存储方式,即(n,)存储为列向量
  • 一、创建一个array
  • 二、使用np.r_和np.c_进行数组相加
    • 1.对一维数组的叠加
    • 2.将数组转成二维
    • 3. hstack以及vstack


前言 针对于一维数组的存储方式,即(n,)存储为列向量 一、创建一个array

使用np.arange()创建一个一维数组,或者np.array()将多维列表转成np格式的ndarray

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用np.r_和np.c_进行数组相加 1.对一维数组的叠加

代码如下(示例):

import numpy as np
a = np.array([1,2,3])     
'''a = [1 
        2
        3]'''
b = a.repeat(3)
'''b = [1
        1   
        1
       ...
        3]'''
c = np.tile(a ,3)
print(b.shape)      #(9,) 列向量
print(c.shape)      #(9,) 列向量
d = np.r_[b,c]    #按列相加 还是列向量(只是numpy方便显示,为一行数组),还是一维
print('d:', d)
'''d: [1 1 1 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3]'''
e = np.c_[b,c]   #按行相加 得到(2,9)的二维数组   
print('e:', e)
'''e: [[1 1]
       [1 2]
       [1 3]
       [2 1]
       [2 2]
       [2 3]
       [3 1]
       [3 2]
       [3 3]]'''
2.将数组转成二维

代码如下(示例):

a = np.array([1,2,3]).reshape(1,3)     #都初始为二维数组,就可以按照显示的行列堆叠
b = a.repeat(3).reshape(1,-1)
c = np.tile(a ,3)
print(b.shape)      #(1,9) 二维数组
print(c.shape)      #(1,9) 二维数组
#二维之后就可按照显示的行列顺序进行叠加了
d = np.r_[b,c]    #按列相加,得到(2,9)的二维数组
print('d:', d)    
'''d: [[1 1 1 2 2 2 3 3 3]
       [1 2 3 1 2 3 1 2 3]]'''
e = np.c_[b,c]   #按行相加 得到(1,18)的二维数组   
print('e:', e)
'''e: [[1 1 1 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3]]'''

将数组转成二维,就可按照显示的行列进行相堆叠了

3. hstack以及vstack
a = np.array([1,2,3])
b = a.repeat(3)
c = np.tile(a ,3)
bc_h = np.hstack((b, c))    
print('bc_h:',bc_h)
'''bc_h: [1 1 1 2 2 2 3 3 3 1 2 3 1 2 3 1 2 3]'''
bc_v = np.vstack((b, c))    
print('bc_v:',bc_v)
'''bc_v: [[1 1 1 2 2 2 3 3 3]
          [1 2 3 1 2 3 1 2 3]]'''
d = np.arange(9).reshape(1,9)
# bcd_h = np.hstack((b, c, d))   #使用hstack,维度必须相同。不相同会报错
# print('bcd_h:',bcd_h)

bcd_v = np.vstack((b, c, d))    
print('bcd_v:',bcd_v)
'''bcd_v: [[1 1 1 2 2 2 3 3 3]
           [1 2 3 1 2 3 1 2 3]
           [0 1 2 3 4 5 6 7 8]]'''

在进行vstack叠加时,默认将一维数组元素变成了二维。
但是二维与三维叠加,二维不会变成三维。即一维可以与二维可以进行vstack
hstack不会改变维度,所有要求相叠加的所有数组维度一样


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号