改变一个NumPy数组的尺寸

  • Post category:Python

改变一个NumPy数组的尺寸可以使用reshape函数来实现,reshape函数可以改变数组的形状,但是改变数组的形状还需要满足新数组的总元素个数与原数组总元素个数相同。

以下是完整的攻略:

1.使用reshape函数改变数组的形状

reshape函数的语法如下:

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

其中:

  • a:需要改变形状的数组
  • newshape:新的形状,可以是一个整数,列表或元组类型,例如(2,3)表示改变为2行3列的矩阵
  • order:参数C表示按行顺序进行读取,F表示按列顺序进行读取,默认是C。

例如:

import numpy as np
a = np.arange(12)
print("原数组:", a)
b = np.reshape(a, (3,4))
print("改变后的数组:")
print(b)

输出结果:

原数组: [ 0  1  2  3  4  5  6  7  8  9 10 11]
改变后的数组:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

2.使用resize函数改变数组的尺寸

resize函数可以直接改变数组的尺寸,如果改变后总元素个数增加,则增加的元素为原数组中的复制。函数语法如下:

numpy.resize(a, new_shape)

其中:

  • a:需要改变尺寸的数组
  • new_shape:新的尺寸,可以是一个整数,列表或元组类型,例如(2,3)表示改变为2行3列的矩阵

例如:

import numpy as np
a = np.arange(6)
print("原数组:", a)
b = np.resize(a, (2,5)) #数组的元素个数增加到10
print("改变后的数组:")
print(b)

输出结果:

原数组: [0 1 2 3 4 5]
改变后的数组:
[[0 1 2 3 4]
 [5 0 1 2 3]]

需要注意的是,resize函数可以改变原数组的尺寸,如果修改后的数组尺寸小于原数组的尺寸,则原数组的元素将被截取。