修改数组形状
reshape()
原型:reshape(shape,order='C')
作用:不改变数据的情况下修改数组形状
| 参数 | 描述 |
|---|---|
| shape | 形状 |
| order | 'C':按行,'F':按列,'A':按原顺序,'K':元素在存中的出现顺序 |
import numpy as np
arr = np.arange(12)
print(arr)
# 参数形状是一个元组
arr = arr.reshape((3,4))
print(arr)
flat
一个数组元素迭代器
import numpy as np
arr = np.arange(12).reshape((3,4))
print(arr)
for x in arr.flat:
print(x)
flatten()
原型:flatten(order='C')
作用:展平的数组元素并拷贝一份,顺序通常是“C的风格”
注意:修改返回的数组不会对原来数组产生影响
| 参数 | 描述 |
|---|---|
| order | 'C':按行,'F':按列,'A':按原顺序,'K':元素在存中的出现顺序 |
import numpy as np
arr = np.arange(12).reshape((3,4))
print(arr)
print('\n')
# 默认order=’C‘
arr_a = arr.flatten()
print(arr1)
arr_b = arr.flatten(order='F')
print(arr2)
arr_b[0] = 99
print(arr_b)
print('\n')
# 验证arr是否被影响
print(arr)
ravel()
原型:numpy.ravel(order='C') 作用:展平的数组元素,顺序通常是“C的风格”,返回的是数组实图(view) 注意:修改会影响元数组
import numpy as np
arr = np.arange(12).reshape((3,4))
print(arr)
print('\n')
b = arr.ravel()
print(b)
print('\n')
# 同时会修改原数组的值
# b[1] = 99
# print(b)
# print('\n')
# print(arr)
# 不会修改原数组的值
c = arr.ravel(order='F')
c[2] = 22
print(c)
print(arr)
翻转数组
transpose()
原型:numpy.transpose(a,axes=None)
作用:对换数组的维度
注意:修改会影响原数组
| 参数 | 描述 |
|---|---|
| a | 要操作的数组 |
| axes | 整数列表,对应维度,通常所有维度都会兑换 |
import numpy as np
arr = np.arange(12).reshape(3,4)
print(arr,'\n')
arr_a = arr.transpose()
print(arr_a)
ndarray.T
类似numpy.transpose()
import numpy as np
arr = np.arange(12).reshape(3,4)
print(arr,'\n')
arr_a = arr.T
print(arr_a)
rollaxis()
原型:numpy.rollaxis(a,axis,start=0)
作用:向后滚动特定的轴到一个特定位置
| 参数 | 描述 |
|---|---|
| a | 要操作的数组 |
| axis | 要向后滚动的轴,其他轴的相对位置不会改变 |
| start | 默认为0,表示完整的滚动 会滚动到一定位置 |
import numpy as np
arr = np.arange(24).reshape(2,3,4)
print(arr,'arr shape:',arr.shape,'\n')
# arr_a = np.rollaxis(arr,0)
# print(arr_a,'\n','arr_a shape:',arr_a.shape,'\n')
# arr_b = np.rollaxis(arr,1)
# print(arr_b,'\n','arr_a shape:',arr_b.shape,'\n')
# arr_c = np.rollaxis(arr,2)
# print(arr_c,'\n','arr_c shape:',arr_c.shape,'\n')
arr_d = np.rollaxis(arr,1,start=0)
print(arr_d,'\n','arr_d shape:',arr_d.shape,'\n')
swapaxes()
原型:numpy.swapaxes(a,axis1,axis2)
作用:交换数组的两个轴,axis1和axis2交换位置
| 参数 | 描述 |
|---|---|
| a | 要操作的数组 |
| axis1 | 对应第一个轴的整数 |
| axis2 | 对应第二个轴的整数 |
import numpy as np
arr = np.arange(24).reshape(2,3,4)
print(arr,'\n','arr shape:',arr.shape,'\n')
arr_a = np.swapaxes(arr,2,1)
print(arr_a,'\n',arr_a.shape)
修改数组维度
broadcast()
用于模仿广播的对象,它返回一个对象,该对象封装了将一个数组广播到另一个数组的结果