首页 > 行业资讯 > NumPy教程-numpy.reshape()在Python中的使用

NumPy教程-numpy.reshape()在Python中的使用

时间:2023-09-28 来源: 浏览:

NumPy教程-numpy.reshape()在Python中的使用

点击关注 Python架构师
Python架构师

gh_1d7504e4dee1

回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。

收录于合集
#numpy 20
#NumPy教程 20
#NumPy 20
#python web教程 80
#python教程 168
整理:python架构师
numpy.reshape()函数是NumPy包中的一个函数。顾名思义,reshape表示“改变形状”。numpy.reshape()函数帮助我们在不改变数据的情况下为数组获取新的形状。
有时,我们需要将数据从宽格式转换为长格式。在这种情况下,我们必须使用reshape()函数来重新塑造数组。

语法

numpy.reshape(arr, new_shape, order= ’C’ )

参数

reshape()函数有以下参数:
1) arr: array_like
这是一个ndarray。这是我们想要重新塑造的源数组。这个参数是必需的,在numpy.reshape()函数中发挥着重要作用。
2) new_shape: int或int元组
我们要将原始数组转换为的形状应与原始数组兼容。如果是整数,则结果将是长度为该整数的1-D数组。一个形状维度可以为-1。在这里,该值会被数组的长度和剩余维度近似。
3) order: {’C’,’F’,’A’},可选
这些索引顺序参数在reshape()函数中发挥着关键作用。这些索引顺序用于读取源数组的元素,并使用这些索引顺序将元素放入重新塑造的数组中。
  1. 索引顺序’C’表示使用类似C的索引顺序读取/写入元素,其中最后一个轴索引变化最快,从第一个轴索引变化最慢。
  2. 索引顺序’F’表示使用类似Fortran的索引顺序读取/写入元素,其中最后一个轴索引变化最慢,而第一个轴索引变化最快。
  3. ’C’和’F’顺序不涉及底层数组的内存布局,只涉及索引的顺序。
  4. 索引顺序’A’表示在内存中连续时,按照类似Fortran的索引顺序读取/写入元素,否则使用类似C的顺序。

资源分享

点击领取:最全Python资料合集

返回值

该函数返回一个ndarray。如果可能,它是一个新的视图对象;否则,它将是一个副本。返回的数组的内存布局没有保证。

示例 1:类似C的索引顺序

import numpy as np x = np.arange(12) y = np.reshape(x, (4, 3)) x y

输出:

array ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ) array ( [[ 0, 1, 2, 3] , [ 4, 5, 6, 7] , [ 8, 9, 10, 11] ])

在上面的代码中
  • 我们使用别名np导入了numpy。

  • 我们使用np.arange()函数创建了一个数组’x’。

  • 我们声明了变量’y’,并将其赋值为np.reshape()函数的返回值。

  • 我们在函数中传递了数组’x’和形状。

  • 最后,我们尝试打印数组的值。

在输出中,数组已经被表示为三行四列。

示例 2:与C ravel然后C reshape等效

import numpy as np x = np.arange(12) y = np.reshape(np.ravel(x), (3, 4)) x y

ravel()函数用于创建一个连续的扁平数组。返回一个包含输入元素的一维数组。只有在需要时才会制作副本。
输出:

array ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ) array ( [[ 0, 1, 2, 3] , [ 4, 5, 6, 7] , [ 8, 9, 10, 11] ])

示例 3:类似Fortran的索引顺序

import numpy as np x = np.arange(12) y = np.reshape(x, (4, 3), order=’F’) x y

输出:

array ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ) array ( [[ 0, 4, 8] , [ 1, 5, 9] , [ 2, 6, 10] , [ 3, 7, 11] ])

在上面的代码中
  • 我们使用别名np导入了numpy。

  • 我们使用np.arange()函数创建了一个数组’x’。

  • 我们声明了变量’y’,并将其赋值为np.reshape()函数的返回值。

  • 我们在函数中传递了数组’x’、形状和类似Fortran的索引顺序。

  • 最后,我们尝试打印数组的值。

在输出中,数组已经被表示为四行三列。

示例 4:类似Fortran的索引顺序

import numpy as np x = np.arange( 12 ) y = np.reshape(np.ravel(x, order= ’F’ ), ( 4 , 3 ), order= ’F’ ) x y

输出:

array ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ) array ( [[ 0, 4, 8] , [ 1, 5, 9] , [ 2, 6, 10] , [ 3, 7, 11] ])

示例 5:未指定的值被推断为2

import numpy as np x = np.arange(12) y = np.reshape(x, (2, -1)) x y

在上面的代码中
  • 我们使用别名np导入了numpy。

  • 我们使用np.arange()函数创建了一个数组’x’。

  • 我们声明了变量’y’,并将其赋值为np.reshape()函数的返回值。

  • 我们在函数中传递了数组’x’和形状(未指定值)。

  • 最后,我们尝试打印数组的值。

在输出中,数组已经被表示为两行五列。
输出:

array ( [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] ) array ( [[ 0, 1, 2, 3, 4, 5] , [ 6, 7, 8, 9, 10, 11] ])

 
热门推荐
  • 30k侮辱价,狗都不去!

  • NumPy教程-numpy.append()在Python中的使用

  • GitHub上火爆——12306抢票的开源实践

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐