CSDN python中修改数组的形状

1.修改数组的形状:reshape和resize

reshape是将数组转换为指定的形状,然后返回转换后的结果,对于原数组的形状是不会发生改变的

resize是将数组转换成指定的形状,会直接修改数组本身,并不会返回任何值

(以下用一个具体实例说明

import numpy as np #导入numpy库

a=np.random.randint(0,5,size=(3,4)) #生成一个随机整数在0到5之间且是三行四列的数组
a #打印输出

a.reshape(2,6) #用reshape函数修改数组形状,返回为修改后的两行六列数组

a #打印输出原来数组,reshape并没有改变原来数组的形状

a.resize(6,2) #resize修改原来数组为六行两列,并且不会返回任何值

a#打印输出原来数组可以发现,原来数组被修改为六行两列

2.对数组进行扁平化处理:flatten和ravel

flatten是将多维数组转换为一维数组后,然后将这个拷贝返回回去,后续对这个返回值修改不会影响原来数组。

ravel将多维数组转换为一维数组后,ravel()修改后面的数据会影响前面的数据。

总结:ravel()是引用操作,flatten()是复制操作。

(以下用一个具体实例说明

import numpy as np #导入numpy库

a1=np.random.randint(0,10,size=(3,4)) #创建一个随机整数在0到10之间且三行四列的数组
a1 #输出打印

a1.flatten() #使用flatten函数进行扁平化,也即将二维数组转换为一维数组

a1.ravel() #使用ravel函数进行扁平化,即将二维数组转换为一维数组(可以发现,二者没有任何区别,都可以将多维数组转换为一维数组)

a2=a1.flatten() #将原数组扁平化,并且复制给a2
a2[0]=0 #对a2的第0个数值进行替换,将原来的6替换为0
print(a1) #打印输出原来的数组,发现扁平化后修改数组并不会对原数组的值进行替换

a3=a1.ravel() #使用ravel函数进行扁平化操作,且复制给a3
a3[0]=1 #同样对a3进行数值替换,将6替换为1
print(a1) #打印输出原来的数组a1,可以发现ravel函数扁平化后修改数组对原来的数组的值进行了替换,原来的数组6被替换为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值