精华内容
下载资源
问答
  • 【Python】numpy形状变换

    千次阅读 2019-04-11 10:27:28
    形状操作 ndarray.reshape(shape[,order]) 返回一个具有相同数据域,但shape不一样的视图 ndarray.resize(new_shape[,orefcheck]) 原地修改数组的形状(需要保持元素个数前后相同) ndarray.transpose(*axes) ...

    形状操作

    ndarray.reshape(shape[,order])

    返回一个具有相同数据域,但shape不一样的视图

    ndarray.resize(new_shape[,orefcheck])

    原地修改数组的形状(需要保持元素个数前后相同)

    ndarray.transpose(*axes)

    返回数组针对某一轴进行转置的视图

    input_image = cv2.imread(r"1.png") #这时input_image的形状为400,400,3
    input_image = input_image.transpose((2, 0, 1))#这时形状为3,400,400
    

    ndarray.swapaxes(axis1, asix2)

    返回数组axis1轴与axis2轴互换的视图

    ndarray.flatten([order])

    返回将原数组压缩成一维数组的拷贝(全新的数组)

    ndarray.ravel([order])

    返回将原数组压缩成一维数组的视图

    ndarray.squeeze([axis])

    返回将原数组中的shape中axis==1的轴移除之后的视图

    上述方法中,除resize、flatten外其他的方法返回的都是原数组修改shape或者axes之后的视图,也就是说,对返回数组中的元素进行修改,原数组中对应的元素也会被修改(因为它们是公用同一个数据域的)。同时,resize方法会修改原数组的shape属性,其他方法不会修改原数组任何内部数据。

     

    同维度内发生交换

    input_image = cv2.imread("1.png") #opencv读出来的时bgr
    input_image = input_image[:, :, (2, 1, 0)] #转变过后就是rgb

     

    展开全文
  • 形状变换与轴交换

    输入

    import numpy as np
    import torch
    
    #numpy创建
    a = np.arange(1,12,2).reshape([2,3]) #生成一个由1到12之间的数组成的步长为2的2x3矩阵
    print(a)
    b=a.T  #对a进行转置
    print(b)
    print('&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&')
    
    c = np.arange(12).reshape([2,2,3])  #生成一个由0到11的数字组成的形状为2组2x3的矩阵
    print(c)
    print("_________________________________________________________________")
    
    #torch创建
    a1 = torch.arange(12).reshape([3,4])
    print(a1)
    b1 = a1.T  #或者  b1 = a1.t()
    print(b1)
    print("**********************************************************************")
    
    
    c1 = torch.arange(12).reshape([2,2,3])  #生成一个有0到11的数字组成的形状为2组2x3的矩阵
    print(c1)
    
    d = torch.transpose(c1,0,2)  #将c1的0轴和2轴进行交换
    print(d)
    d1 = torch.transpose(d,1,2)
    print(d1)
    print("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^")
    
    d2 = c1.permute([2,0,1])  #第二种交换c1的3个轴的方法
    print(d2)
    
    e = np.reshape(c,[3,2,2])  #矩阵变形
    print(e)

    输出

    [[ 1  3  5]
     [ 7  9 11]]
    [[ 1  7]
     [ 3  9]
     [ 5 11]]
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    [[[ 0  1  2]
      [ 3  4  5]]
    
     [[ 6  7  8]
      [ 9 10 11]]]
    _________________________________________________________________
    tensor([[ 0,  1,  2,  3],
            [ 4,  5,  6,  7],
            [ 8,  9, 10, 11]])
    tensor([[ 0,  4,  8],
            [ 1,  5,  9],
            [ 2,  6, 10],
            [ 3,  7, 11]])
    **********************************************************************
    tensor([[[ 0,  1,  2],
             [ 3,  4,  5]],
    
            [[ 6,  7,  8],
             [ 9, 10, 11]]])
    tensor([[[ 0,  6],
             [ 3,  9]],
    
            [[ 1,  7],
             [ 4, 10]],
    
            [[ 2,  8],
             [ 5, 11]]])
    tensor([[[ 0,  3],
             [ 6,  9]],
    
            [[ 1,  4],
             [ 7, 10]],
    
            [[ 2,  5],
             [ 8, 11]]])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    tensor([[[ 0,  3],
             [ 6,  9]],
    
            [[ 1,  4],
             [ 7, 10]],
    
            [[ 2,  5],
             [ 8, 11]]])
    [[[ 0  1]
      [ 2  3]]
    
     [[ 4  5]
      [ 6  7]]
    
     [[ 8  9]
      [10 11]]]

     

    展开全文
  • 维度变换与维度增减问题

    输入

    import torch
    
    a = torch.randn([2,3,2])  #生成2组3x2的随机矩阵
    print(a)
    b=a.reshape(3,4)  #转化为1组3x4列的
    print(b)
    print("_____________________________________________")
    c=a.reshape(1,12)  #转化成行
    print(c)
    d = a.reshape(12,1)  #转化为一列
    print("*******************************************")
    print(d)
    e = a.reshape(12)  #同上
    print(e)
    print("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^")
    f = torch.unsqueeze(e,1)  #加上一个维度并将其变换为一列
    print(f)
    g = torch.squeeze(c,0)  #降低一个微电影并将其变换为一行
    print(g)

    输出

    tensor([[[ 0.6470, -1.0670],
             [-1.0981,  1.4381],
             [-0.8501,  0.0617]],
    
            [[ 0.6577, -0.6435],
             [-0.3520,  0.6506],
             [ 0.7744, -0.6745]]])
    tensor([[ 0.6470, -1.0670, -1.0981,  1.4381],
            [-0.8501,  0.0617,  0.6577, -0.6435],
            [-0.3520,  0.6506,  0.7744, -0.6745]])
    _____________________________________________
    tensor([[ 0.6470, -1.0670, -1.0981,  1.4381, -0.8501,  0.0617,  0.6577, -0.6435,
             -0.3520,  0.6506,  0.7744, -0.6745]])
    *******************************************
    tensor([[ 0.6470],
            [-1.0670],
            [-1.0981],
            [ 1.4381],
            [-0.8501],
            [ 0.0617],
            [ 0.6577],
            [-0.6435],
            [-0.3520],
            [ 0.6506],
            [ 0.7744],
            [-0.6745]])
    tensor([ 0.6470, -1.0670, -1.0981,  1.4381, -0.8501,  0.0617,  0.6577, -0.6435,
            -0.3520,  0.6506,  0.7744, -0.6745])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    tensor([[ 0.6470],
            [-1.0670],
            [-1.0981],
            [ 1.4381],
            [-0.8501],
            [ 0.0617],
            [ 0.6577],
            [-0.6435],
            [-0.3520],
            [ 0.6506],
            [ 0.7744],
            [-0.6745]])
    tensor([ 0.6470, -1.0670, -1.0981,  1.4381, -0.8501,  0.0617,  0.6577, -0.6435,
            -0.3520,  0.6506,  0.7744, -0.6745])

     

    展开全文
  • (1)a.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变 (2)a.resize(shape) 作用同上,但原数组改变 (直接改变原数组) import numpy as np a=np.array(range(12)) b=a.reshape((3,4)) ...

    一·数组变换

    1.ndarray数组的维度变换

    (1)a.reshape(shape)     不改变数组元素,返回一个shape形状的数组,原数组不变

    (2)a.resize(shape)         作用同上,但原数组改变 (直接改变原数组)

    import numpy as np
    a=np.array(range(12))
    b=a.reshape((3,4))
    print(b)
    print("a=",a)
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    a= [ 0  1  2  3  4  5  6  7  8  9 10 11]
    import numpy as np
    a=np.array(range(12))
    c=a.resize((3,4))
    print(c)
    print("a=",a)
    
    None
    a= [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]

    (3)a.swapaxes(ax1,ax2 )  将数组n个 维度中的两个维度进行调换

    import numpy as np
    a=np.array(range(12))
    b=a.reshape(3,4)
    c=b.swapaxes(0,1)
    print(c)
    
    
    [[ 0  4  8]
     [ 1  5  9]
     [ 2  6 10]
     [ 3  7 11]]

    (4)a.flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变

    import numpy as np
    a=np.ones((2,3,4),dtype=np.int32)
    b=a.flatten()
    print(b)
    
    [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

    2.ndarray数组的类型变换

    (1) b=a.astype(new_type)   原数组不变

    import numpy as np
    a=np.array([1,1,1],dtype=np.int32)
    b=a.astype(float)
    print(a)
    print(b)
    
    [1 1 1]
    [1. 1. 1.]
    

    3.ndarray数组向列表的转换

    (1)ls=a.tolist()    即array类型 变为list类型

    二·数组操作

    1.索引(与列表类似)

     

     

    展开全文
  • import numpy as np np.resize() np.reshape() 的区别 1.当不是整数做修改时,用resize;reshape要求必须使用整数 2.resize会修改原数组的形状;而reshape会修改原数组的形状 list tuple string list dict char 之间...
  • numpy数组形状

    千次阅读 2018-08-17 10:45:34
    修改数组的形状   shape 和 reshape 方法不能改变数组中元素的总数,否则会报错:   使用 newaxis 增加数组维数 根据插入位置的不同,可以返回不同形状的数组: 插入多个新维度:  squeeze 方法...
  • 1,新建array (numpy.ndarray) import numpy as np # 手动填写一个 a=[[1,2],[2,3],[3,4]] a = np.array(a) # 随机生成一个 b = np.random.randint(0...2,查看形状 print(a.shape) # (3, 2) 3,多种变形 ...
  • numpy修改数组形状

    千次阅读 2019-04-24 09:42:58
    Python数据分析:numpy修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 numpy....
  • NumPy 数组的维度变换

    千次阅读 2019-03-27 17:52:18
    numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下: numpy.reshape(arr, newshape, order=‘C’) arr:要修改形状的数组 newshape:整数或者整数数组,新的形状应当兼容原有形状 order:‘C’ – 按行...
  • import numpy as np a = np.arange(0,10) reshape函数 Tips:数组可以通过shape/reshape改变自身的形状,但无法改变大小。 新增加一个维度 矩阵的转置 Tips:转置a矩阵自身不会变换 数组的连接 concatenate...
  • Numpy简易教程4——变换数组的形态

    万次阅读 2021-08-10 21:50:13
    NumPy中,常用reshape函数改变数组的“形状”,也就是改变数组的维度。其参数为一个正整数元组,分别指定数组在每个维度上的大小。 reshape函数在改变原始数据的形状的同时不改变原始数据的值。 如果指定的维度...
  • numpy:数组的形状

    千次阅读 2020-10-10 21:20:05
    import numpy as np t1=np.arange(12) print(t1) print(t1.shape) t2=np.array([[1,2,3],[4,5,6]]) print(t2) print(t2.shape) t3=np.array([[[1,2],[3,4],[5,6]],[[7,8],[9,10],[11,12]]]) print(t3) print(t3....
  • e = numpy.column_stack((a[:, numpy.newaxis], b[:, numpy.newaxis])) print(e) 原始矩阵a: [[ 0. 0.] [ 4. 1.]] 原始矩阵a: [[ 3. 3.] [ 9. 3.]] column_stack后的矩阵: [[ 0. 0. 3. 3.] [ 4. 1. 9. 3.]] ...
  • NumPy基础 | 变换数组的形态 01 改变数组形状 02 使用ravel函数展平数组 03 使用flatten函数展平数组 04 组合数组 05 切割数组
  • NumPy之操控ndarray的形状 NumPy之浅拷贝和深拷贝 NumPy之索引技巧 概述 这里主要总结针对ndarray形状的三种操作: 改变ndarray的形状 堆叠几个ndarray 拆分ndarray 改变ndarray的形状 以下列ndarray为例: >&...
  • 文章目录前言一、 Numpy的Flatten和RavelNumpy的Flatten和Ravel 实操案例二、 Numpy的Transpose和swapaxesNumpy的Transpose和swapaxes的实操案例 前言 一、 Numpy的Flatten和Ravel 二、 Numpy的Transpose和swapaxes...
  • numpy库对多维数组有非常灵巧的处理方式,主要的处理方法有: .reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变 .resize(shape) : 与.reshape()功能一致,但修改原数组 In [22]: a = np.a...
  • Numpy学习之更改数组形状 更改数组形状的相关函数如下: x = np.array([1,2,3,4,5,6,7,8]) print(x.shape) # 表示数组的维度,返回一个元组 (8,) x = np.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25...
  • OpenCV形状变换

    2018-06-28 14:37:00
    在使用OpenCV进行图像处理时,常常需要对已有的图像进行几何变换,今天我们来学习OpenCV中常用的几种基本几何变换。 1、 扩展缩放 扩展缩放只是改变图像的尺寸大小。OpenCV 提供的函数cv2.resize()可以实现这个...
  • numpy

    2018-11-14 16:03:04
    numpy多维数组数组变换数组运算numpy数据类型numpy的创建 多维数组 import numpy as np if __name__ == "__main__": # 一维数组 t1 = np.arange(12) print(t1) ""&...
  • 一、修改数组的形状 ( 一)、单个数组形状的修改 1、数组形状的普通修改 1.1、ndarry.reshape() ...import numpy as np n1 = np.array([[2,4,3,2],[8,4,2,9],[8,3,4,9]]) n1 # array([[2, 4, 3, 2], # [8, 4, 2,
  • 目录 1.直接改变 通过 shape 直接指定形状 ---- 元组 2.通过reshape 更改 --- 返回一个新的数组 3.将高纬度数组展平 ...import numpy as np arr=np.arange(16) print('arr:',arr) print('arr形状:',arr.shape...
  • import numpy as np # reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变 a = np.arange(20) print(a.reshape([4,5])) print(a) # resize 修改原数组 print(a.resize([4,5])) print(a) #...
  • NumPy

    2019-07-13 21:28:05
    NumPynumpy的数据结构——ndarray(n维数组对象)。 1.1 创建数组 ​ 创建数组使用numpy的array函数, 通过numpy,系统自带的列表list可以转换为numpy中的数组; 嵌套列表会被转换为一个多维数组(即,矩阵)...
  • Numpy

    千次阅读 2017-03-14 12:48:41
    1、ndarray,一个具有矢量运算和复杂广播能力的快速且节省空间的多维数组2、用于对数组数据进行快速运算的标准数学函数(无需编写循环)3、线性代数、随机数生成以及傅里叶变换功能NumPy数组属性在详细介绍NumPy数组...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,519
精华内容 3,407
关键字:

numpy形状变换