np.reshape()

np.reshape():在不改变数据的条件下修改形状。

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

参数:

  • arr:要修改形状的数组
  • newshape:整数或者整数数组,新的形状应当兼容原有形状
  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'k' -- 元素在内存中的出现顺序。

示例:

import numpy as np

a = np.arange(6).reshape((3, 2))
print(a)

b = np.reshape(a, (2, 3), order='F')
print(b)
[[0 1]
 [2 3]
 [4 5]]
[[0 4 3]
 [2 1 5]]

当维度值传 -1时:

# 将 8 个元素的 1D 数组转换为 2x2 元素的 3D 数组
c = np.array([1, 2, 3, 4, 5, 6, 7, 8])
d = c.reshape(2, 2, -1)		# 指定2行2列,第三维度用-1,会自动计算
print(d)
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

注意reshape 生成的新数组与原数组公用一个内存。不管改变新数组还是原数组的元素,另一个数组也会改变。

d[0] = 8
print(d)
print(c)
[[[8 8]
  [8 8]]

 [[5 6]
  [7 8]]]


[8 8 8 8 5 6 7 8]


posted @ 2022-08-24 11:27  做梦当财神  阅读(1015)  评论(0编辑  收藏  举报