shape与reshape区别

shape可以查看数组的结构
reshape可以改变数组结构

1.shape
当数组是一维数组的时候(通俗的讲只有一个数组的时候)
使用shape显示的该数组的元素个数,指的是该数组的列数

import numpy as np
def shape1():
    data=np.array([2,3])
    print(data.shape)
if __name__=="__main__":
    shape1()

输出的值为:
(2,)
代表该数组有两列

当数组是多维数组的时候,使用shape显示的是行列数

import numpy as np
def shape1():
    data=np.array([[2,3],[5,6],[9,77]])
    print(data.shape)
if __name__=="__main__":
    shape1()

结果是:
(3, 2)

表示该数组有三行两列

注意
shape[0]表示输出数组的行数
shape[1]表示输出数组的列数
shape()表示输出行列数

import numpy as np
def shape1():
    data=np.array([[2,3],[5,6],[9,77]])
    print(data.shape[0])
if __name__=="__main__":
    shape1()

结果:
3
表示该数组有3行

2.reshape

改变数组的形状,但是原数据不会发生改变。但是reshape的参数要满足它们的乘积要等于数据的总个数

def reshape1():
    data=np.array([3,5,6,78,9,0])
    data=data.reshape(2,3)
    print(data)
if __name__=="__main__":
    reshape1()
    # shape1()

结果:
[[ 3 5 6]
[78 9 0]]

reshape(2,3)表示将原数组结构改变成两行三列
将3变成-1也可以,计算机可以根据前面已给出的行数进行计算等价于
reshape(2,-1)
意思是在元素总数不变的情况下进行切割

posted @ 2020-03-09 18:52  X_J  阅读(238)  评论(0编辑  收藏  举报