目录索引
基本索引和切片:
普通索引:
import numpy as np
arr = np.array([
[[1,2,3],[4,5,6],[7,8,9]],
[[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,0,0]) #1
print(arr[1,2,2]) #8
省略索引:
import numpy as np
arr = np.array([
[[1,2,3],[4,5,6],[7,8,9]],
[[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,:,1]) #[2 5 8]
多省略索引:
import numpy as np
arr = np.array([
[[1,2,3],[4,5,6],[7,8,9]],
[[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,:,:]) #相当于获取第一层的所有信息
间隔索引:
import numpy as np
arr = np.array([
[[1,2,3],[4,5,6],[7,8,9]],
[[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,0:3,:]) #默认步长为1,与序列切片类似
print("-"*80)
print(arr[1,0:3:2,1]) #第二层,第0行和第2行,分别取出第1列
形态变换操作:
reshape():
import numpy as np
arr = np.arange(2,10)
result = arr.reshape((2,4)) #10-2 要等于 2*4才能创建
print(result)
print("-"*80)
print(arr)
resize():
import numpy as np
arr = np.arange(2,10)
result = arr.resize((5,2)) #10-2 要等于 5*2才能创建
print(result)#用变量接收之后返回的是空值:None
print("-"*80)
print(arr)#不用变量接收,也可以正常获取结果
transpose():
import numpy as np
arr = np.arange(2,10)
result = arr.reshape(4,2)
result1 = result.transpose()
print(result) #4*2
print("-"*80)
print(result1) #2*4
通过参数进行转置:
import numpy as np
arr = np.arange(24).reshape((2,3,4)) #创建一个三维数组
print(arr)
print("-"*80)
print(arr.transpose()) # 完全转置,轴的顺序从(0,1,2)变为(2,1,0)
print("-"*80)
print(arr.transpose((0,2,1))) #执行的是行列转置
flatten():
import numpy as np
arr = np.arange(24).reshape((2,3,4)) #创建一个三维数组
result = arr.flatten()
print(arr)
print("-"*80)
print(result)