python中reshape()、flatten()、ravel()函数、flat属性

数组形状修改函数

1、 reshape
reshape()函数既可以被numpy调用,调用时ndarray数组当成参数。
也可以直接被ndarray数组调用,参数传形状就可。
参数order=“C”/“F”
"C"默认将原来数组按行填充。
“F”默认把原来数组按列填充。
2、 flat、flatten()、ravel()
arr=np.arange(8).reshape(2,4)
flat是ndarray的属性,arr.flat是一个可迭代对象,用list(arr)可以显示.
对应的函数arr.flatten(),直接显示展开成的一维数组。

a2=np.arange(8).reshape(2,4)
a2
a3=a2.flatten(order="F")
a3.ravel(order="C")[1]=99#返回视图,当这样改变时按行展开和默认的存储方式一样,所以对原数组进行了修改。但
a3.ravel(order="F")#默认按列 取数展开一维平面,与原来数组在内存默认的存储方式(默认是按行存储的)不同,所以不会这样用索引访问并改变值的时候原来数组不会发生更改。

a2:
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
a3:
array([0, 4, 1, 5, 2, 6, 3, 7])

返回的是数据副本,全拷贝。
a3[0]=99
a2不变,a3变


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部