【入门】常见错误
arr1 = arr1[::-1] # ✅ 正确方法(反转行)
arr1 = arr1[:,::-1] # ❌ 这是反转列,不是题目要求的反转行
[:,::-1]
会反转列顺序,不符合题目要求arr1[::-1]
即可反转行顺序arr2 = np.arange([1, 2, 3, 3, 2, 1]) # ❌ 语法错误
arr2[2,4] = 10 # ❌ 索引方式错误
np.arange()
的参数应该是单个整数,用于生成等差数列。创建自定义数组应使用np.array()
[2,4]
会触发高级索引,实际需要切片操作arr2 = np.array([1,2,3,3,2,1]) # ✅ 正确创建数组
arr2[2:5] = 10 # ✅ 使用切片选择第2到第4个元素(索引2,3,4)
arr3 = np.arange([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]]) # ❌ 语法错误
np.arange()
不能直接创建自定义三维数组arr3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]]) # ✅
print(arr3[0,:,:]) # ✅ 正确提取第1个通道
数组创建混淆:
np.arange()
vs np.array()
的区别np.arange(n)
生成0到n-1的等差数列np.array([...])
用于创建自定义数组维度操作理解:
arr[2:5]
)arr[行, 列]
)切片操作细节:
[::-1]
的反转方向:对行操作时不需要指定列维度arr[::-1]
)和列反转(arr[:,::-1]
)函数参数类型:
np.arange()
接收整数参数(如np.arange(5)
)np.array()
# 创建以下数组:
# 1. 从5到10的一维数组(使用np.arange)
# 2. 自定义二维数组 [[1,3,5], [2,4,6]]
arr1 = np.arange(5, 11)
arr2 = np.array([[1,3,5], [2,4,6]])
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
# 1. 提取第二列
# 2. 反转所有行
# 3. 交换第一列和第三列
print(arr[:,1]) # 第二列
print(arr[::-1,:]) # 反转行
arr[:,[0,2]] = arr[:,[2,0]] # 交换列
arr = np.array([2,5,8,3,10])
# 找到所有大于4且小于9的元素
mask = (arr > 4) & (arr < 9)
print(arr[mask]) # 输出 [5,8]
掌握这些基础后,你的NumPy操作会更精准!