python创建一个数组并返回reshape数组_Python中的numpy.reshape()例子

numpy.reshape()函数用于在不改变数据的情况下改变数组的形状。本文详细介绍了reshape()函数的语法、参数以及多个示例,包括C风格索引排序、类Fortran索引排序和未指定值推断的情况。
摘要由CSDN通过智能技术生成

numpy.reshape()函数在NumPy包中可用。顾名思义, 整形意味着”形状变化”。 numpy.reshape()函数可帮助我们在不更改数据的情况下获得数组的新形状。

有时, 我们需要将数据从宽到长整形。因此, 在这种情况下, 我们必须使用reshape()函数对数组进行整形。

句法

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

参数

reshape()函数具有以下参数:

1)arr:array_like

这是一个ndarray。这是我们要重塑的源数组。此参数是必需的, 并且在numpy.reshape()函数中起着至关重要的作用。

2)new_shape:int或int元组

我们要转换原始数组的形状应与原始数组兼容。如果是整数, 结果将是该长度的一维数组。一种形状尺寸可以为-1。在此, 该值近似于数组的长度和其余维度。

3)顺序:{‘C’, ‘F’, ‘A’}, 可选

这些索引order参数在reshape()函数中起着至关重要的作用。这些索引顺序用于读取源数组的元素, 并使用此索引顺序将元素放置到重新排列的数组中。

索引顺序” C”是指使用类似C的索引顺序读取/写入元素, 其中最后一个轴索引变化最快, 回到第一个轴索引变化最快。

索引顺序” F”是指使用类似Fortran的索引顺序读取/写入元素, 其中最后一个轴索引变化最快, 而第一个轴索引变化最快。

” C”和” F”顺序不占用基础数组的内存布局量, 仅指索引的顺序。

索引顺序” A”表示在arr在内存中连续时以类似于Fortran的索引顺序读取/写入元素, 否则使用类似于C的顺序。

退货

该函数返回一个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.arrange()函数创建了一个数组’a’。

我们已经声明了变量” y”并分配了np.reshape()函数的返回值。

我们已经在函数中传递了数组” x”和形状。

最后, 我们尝试打印arr的值。

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

示例2:等效于C ravel然后C重塑

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.arrange()函数创建了一个数组’a’。

我们已经声明了变量” y”并分配了np.reshape()函数的返回值。

我们已经在函数中传递了数组” x”以及形状和类似Fortran的索引顺序。

最后, 我们尝试打印arr的值。

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

示例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.arrange()函数创建了一个数组’a’。

我们已经声明了变量” y”并分配了np.reshape()函数的返回值。

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

最后, 我们尝试打印arr的值。

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

输出

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]])

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值