欢迎访问宙启技术站
智能推送

Python函数Numpy中的reshape()函数详解

发布时间:2023-06-07 00:53:57

在Python的Numpy库中,reshape()是一种重塑数组形状的函数。该函数可以将一个n维数组重塑为m维数组,并返回一个新的数组对象。

reshape()函数的语法如下:

numpy.reshape(array, newshape, order='C')

其中, 个参数array是原始的数组,第二个参数newshape是一个整数元组tuple,用于指定新数组的形状。第三个参数order是可选的,用于指定重排列元素的顺序,有C、F和A三种选项。

C(按行):是默认的重排元素顺序,按照原始数组的行顺序重排元素。

F(按列):按照原始数组的列顺序重排元素。

A(按原始顺序):保持原始数组元素的顺序。

那么下面让我们通过一些示例来更详细地了解reshape()函数的用法:

(1) 创建一个一维数组,并使用reshape()函数将其转换为二维数组:

import numpy as np

a = np.arange(10) 
print('原始数组:', a)
print('数组a的形状:', a.shape)

b = np.reshape(a, (2,5))
print('重塑后的数组b:
', b)
print('数组b的形状:', b.shape)

输出结果如下:

原始数组: [0 1 2 3 4 5 6 7 8 9]
数组a的形状: (10,)
重塑后的数组b:
 [[0 1 2 3 4]
 [5 6 7 8 9]]
数组b的形状: (2, 5)

在例子中,我们首先使用arange()函数创建一个长度为10的一维数组,然后使用reshape()函数将其重塑为2行5列的二维数组。在重塑后的数组b中,元素的排列顺序是按行的。

(2) 创建一个三维数组,并使用reshape()函数将其转换为二维数组:

c = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print('原始数组:
', c)
print('数组c的形状:', c.shape)

d = np.reshape(c, (2,6))
print('重塑后的数组d:
', d)
print('数组d的形状:', d.shape)

输出结果如下:

原始数组:
 [[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]]
数组c的形状: (2, 2, 3)
重塑后的数组d:
 [[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
数组d的形状: (2, 6)

在这个示例中,我们先创建了一个三维数组(2x2x3),并使用reshape()函数将其重塑为2行6列的二维数组。需要注意的是,数组b中的元素排列顺序是按照原数组中的元素顺序来的。

(3) 创建一个四维数组,并使用reshape()函数将其转换为三维数组:

e = np.array([[[[ 0,  1],
                [ 2,  3]],

                [[ 4,  5],
                [ 6,  7]]],


               [[[ 8,  9],
                [10, 11]],

                [[12, 13],
                [14, 15]]]])
print('原始数组:
', e)
print('数组e的形状:', e.shape)

f = np.reshape(e, (2, 2, 4))
print('重塑后的数组f:
', f)
print('数组f的形状:', f.shape)

输出结果如下:

原始数组:
 [[[[ 0  1]
   [ 2  3]]

  [[ 4  5]
   [ 6  7]]]


 [[[ 8  9]
   [10 11]]

  [[12 13]
   [14 15]]]]

数组e的形状: (1, 2, 2, 2)
重塑后的数组f:
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]]
数组f的形状: (2, 2, 4)

在这个示例中,我们先创建了一个四维数组(1x2x2x2),并使用reshape()函数将其重塑为3维数组(2x2x4)。在重塑后的数组f中,元素排列顺序按照原数组中的元素顺序来的。

总结

在numpy库中,reshape()函数是一种非常强大、常用的数组形状转换方法。它通过重新排列原始数组中的元素以制定的方式,来创建新的n维数组,并为您提供了非常灵活和方便的数组操作方式。您可以根据自己的需要随时重塑数组,并利用其直观性和易用性来简化复杂的数据处理任务。更多不同情境下的使用细节与示例可以在numpy官方文档中查找。