详解numpy.ndarray.reshape()函数的参数问题

作者:勤奋的小乌贼 时间:2022-02-06 20:22:57 

我们知道numpy.ndarray.reshape()是用来改变numpy数组的形状的,但是它的参数会有一些特殊的用法,这里我们进一步说明一下。代码如下:


import numpy as np

class Debug:
 def __init__(self):
   self.array1 = np.ones(6)

def mainProgram(self):
   print("The value of array1 is: ")
   print(self.array1)
   print("The array2 is: ")
   array2 = self.array1.reshape(2, 3)
   print(array2)

if __name__ == '__main__':
 main = Debug()
 main.mainProgram()
"""
The value of array1 is:
[1. 1. 1. 1. 1. 1.]
The array2 is:
[[1. 1. 1.]
[1. 1. 1.]]
"""

这里我们看到我们将一个长度为6的一维数组变成了一个尺寸为(2, 3)的二维数组,这里的2代表2行,对应y轴,3代表3列,对应x轴。

然而有时候我们会在reshape中使用到-1这个参数,当使用这个参数时,会将数组重新塑形变得十分简单。代码如下:


class Debug:
 def __init__(self):
   self.array1 = np.ones(6)

def mainProgram(self):
   print("The value of array1 is: ")
   print(self.array1)
   print("The array2 is: ")
   array2 = self.array1.reshape(-1, 3)
   print(array2)

if __name__ == '__main__':
 main = Debug()
 main.mainProgram()
"""
The value of array1 is:
[1. 1. 1. 1. 1. 1.]
The array2 is:
[[1. 1. 1.]
[1. 1. 1.]]
"""

我们可以看到当我们将reshape的第一个参数变为-1时,我们仍旧获得了一个尺寸为(2, 3)的数组,其实在这里,-1代表的意思为6 / 3 =2,其中6是被塑形一维数组的长度,3是我们指定的二维数组一个方向的维度。这样的好处就是当数据量比较大时,我们在二维数组重新塑形时只需要指定一个维度上的尺寸,另一个维度上的尺寸python会自动为我们计算。

来源:https://blog.csdn.net/u011699626/article/details/109006973

标签:numpy.ndarray.reshape()函数,参数
0
投稿

猜你喜欢

  • 用sql实现18位身份证校验代码分享 身份证校验位计算

    2024-01-13 13:37:11
  • 深入讨论Python函数的参数的默认值所引发的问题的原因

    2022-08-03 00:54:31
  • Python利用pythonping处理ping的示例详解

    2023-08-12 00:28:45
  • javascript cookies 设置、读取、删除实例代码

    2024-04-19 10:01:51
  • python 读取二进制 显示图片案例

    2021-10-15 17:27:45
  • 100 个 Python 小例子(练习题一)

    2022-09-25 20:45:52
  • 18个Python脚本可加速你的编码速度(提示和技巧)

    2022-11-09 16:54:34
  • Python属性和内建属性实例解析

    2023-06-10 18:22:15
  • pygame实现贪吃蛇游戏(上)

    2022-07-10 20:48:10
  • asp任何取得多个表单的值

    2008-04-15 15:31:00
  • vue中el-table合并列的具体实现

    2024-05-02 16:35:03
  • Django 开发调试工具 Django-debug-toolbar使用详解

    2022-03-18 02:31:07
  • Python的Requests库示例讲解

    2023-07-24 22:03:29
  • python 进程 进程池 进程间通信实现解析

    2022-07-05 07:38:28
  • python银行卡号码校验Luhn模10算法

    2022-03-18 07:32:52
  • 5分钟快速掌握JS中var、let和const的异同

    2024-05-09 15:05:49
  • python多线程用法实例详解

    2023-02-08 11:24:03
  • Python lambda表达式用法实例分析

    2022-06-05 12:32:34
  • 用DIV+CSS编写出的网页中的圆角矩形

    2007-10-14 16:03:00
  • MySQL查看版本的五种方法总结

    2024-01-16 08:22:04
  • asp之家 网络编程 m.aspxhome.com