1、数组元素索引
import numpy as np
arr = np.arange(16).reshape((4,4))
#获取 0 2 行的 前两列
data = arr[[0,2],0:2:1]
data = arr[[0,2],[0,1,2]] # 错误的,如果这样取值,前后的形状必须一致
# arr_mask = np.array([0,1,0,3],dtype=np.bool)
# # 利用bool数组进行切片
# data = arr[arr_mask,:] #第0行不见了
# # data = arr[:,arr_mask] # 第0列不见了
#总结:
"""
一维 arr[下标/切片]
二维 arr[行下边或者切片,列下标或者切片]
三维 arr[块下标或者切片,行,列]
四维 arr[堆下标或者切片,块,行,列]
"""
# 注意:
# 如果使用下标,会降维度,如果使用切片,维度不变
# bool数组进行索引的时候,需要索引的是二维数组,那么你的bool数组是一维的,
# bool数组的长度 需要与你要切的维度的长度一致
2、数组展开
import numpy as np
# 创建一个二维数组
arr = np.mat(np.arange(16).reshape((4,4)))
print("arr;\n",arr)
# 进行数组展开
# ravel() --进行将高维度数组 展开为一维,按行展开
# print(arr.ravel())
# flatten() -进行将高维度数组 展开为一维,按行展开---默认为C风格
# print(arr.flatten(order = "C"))
# 按列展开
# print(arr.flatten(order = "F"))
# print(arr)
# ravel 与C 风格flatten一样
3、数组的组合
import numpy as np
# 创建一个二维数组
arr_2 = np.arange(4,8).reshape([2,2])
arr_3 = np.array([[1,2]]) # (1,2)
print("arr2:\n",arr_2)
# 数组组合 ---参数 需要是一个对象---元组对象、或者列表对象
# new_arr = np.vstack((arr_1,arr_2)) #按照行的方向进行拼接
# new_arr = np.hstack([arr_1,arr_2]) #按照列的方向进行拼接
# new_arr = np.concatenate((arr_1,arr_3),axis=0) # (行,列) ---和vstack一样
# new_arr = np.concatenate((arr_1,arr_2),axis=1) # (行,列) ----和hstack 一样
# print("new_arr:\n",new_arr)
# 注意 : 拼接的时候维度必须一致
# 在行的方向进行拼接,你必须保证列数一致
# 在列的方向上进行拼接,必须保证行数一致
4、数组的拆分
import numpy as np
# 创建一个二维数组
arr = np.arange(16).reshape