Python numpy库 shape属性和reshape()方法

shape是数组array的属性;reshape()是数组array的方法

shape属性可以获得当前array的形状:

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6, 7, 8])  # 一维数组
print(a.shape)  # 值为(8,)
print(a.shape[0])  # 值为8,因为有8个数据
# print(a.shape[1])  # IndexError: tuple index out of range

a = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])  # 二维数组
print(a.shape)  # 值为(2, 4)
print(a.shape[0])  # 值为2,最外层矩阵有2个元素,2个元素还是矩阵。
print(a.shape[1])  # 值为4,内层矩阵有4个元素。
# print(a.shape[2])  # IndexError: tuple index out of range

y = np.zeros((2, 3, 4, 5))
print(y.shape)  # 值为(2, 3, 4, 5)
print(y)

y = np.zeros((2, 3, 4, 5))运行结果:

Python numpy库 shape属性和reshape()方法_第1张图片

reshape()方法用于改变数组的形状(数组的形状会改变,但是数组中的值不会改变):

Python numpy库 shape属性和reshape()方法_第2张图片

变成的新形状中所包含的元素个数必须符合原来元素个数。如果数组元素发生变化的时候,就会报错:

Python numpy库 shape属性和reshape()方法_第3张图片

reshape()函数生成的新数组和原始数组公用一个内存,也就是说,不管是改变新数组还是原始数组的元素,另一个数组也会随之改变:

Python numpy库 shape属性和reshape()方法_第4张图片

当不知道某一个维度值为多大时,可以使用-1:

Python numpy库 shape属性和reshape()方法_第5张图片

Python numpy库 shape属性和reshape()方法_第6张图片

Python numpy库 shape属性和reshape()方法_第7张图片

-1只能使用一次,否则会报错(有多种输出可能):

Python numpy库 shape属性和reshape()方法_第8张图片

参考:

  1. https://blog.csdn.net/qq_28618765/article/details/78083895
  2. https://blog.csdn.net/u010916338/article/details/84066369
  3. https://blog.csdn.net/m0_37592397/article/details/78695318

你可能感兴趣的:(Python)