numpy学习专题
十、numpy修改数组形状
修改数组形状
reshape()
原型:reshape(shape,order ='C') 作用:不改变数据的条件下修改形状 参数 说明 shape 形状 order 'C'--按行,'F'--按列,'A'--原顺序,'K'--元素在内存中的出现顺序
import numpy as np
arr = np.arange(12).reshape(4,3)
print(arr)
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
flat 一种数组元素迭代器
import numpy as np
arr =np.arange(12)
arr.shape=(3,4)
print(arr,"\n")
print("迭代后的数组\n")
for x in arr.flat:
print(x,end=", ")
print("\n")
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
迭代后的数组
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
flatten
原型:flatten(order ='C') 作用:展平的数组元素并拷贝一份,顺序通常是"C风格" 注意:修改返回的数组不会对原数组产生影响 参数 说明 order 'C'--按行,'F'--按列,'A'--原顺序,'K'--元素在内存中的出现顺序
import numpy as np
arr = np.arange(12)
arr.shape=(3,4)
print(arr,"\n")
arr2 =arr.flatten()
print(arr2)
arr2[0]=100
print("\n",arr)
print("\n",arr2)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[100 1 2 3 4 5 6 7 8 9 10 11]
ravel()
原型:numpy.ravel(order='C')
作用:展平的数组元素,顺序通常是"C风格",返回的是数组视图(VIEW,有点类似C/C++应用reference的意味)
注意:修改会影响原始数组
import numpy as np
arr = np.arange(12).reshape(3,4)
arr2 =arr.ravel()
print(arr,"\n")
print(arr2,"\n")
arr2[0]=10086
print(arr,"\n")
print(arr2,"\n")
#若将order设置为F
arr = np.arange(12).reshape(3,4)
arr3 =arr.ravel(order="F")
print(arr3,"\n")
print(arr,"\n")
arr3[0]=10086
print(arr3,"\n")
print(arr,"\n")
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[10086 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[10086 1 2 3 4 5 6 7 8 9 10 11]
[ 0 4 8 1 5 9 2 6 10 3 7 11]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[10086 4 8 1 5 9 2 6 10 3 7 11]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
一定要支持作者哦