arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) print(arr[0:2, 1:4])为什么结果是[[2 3 4] [7 8 9]],具体运算逻辑是怎样的
时间: 2024-01-02 09:05:19 浏览: 164
这段代码中,`arr` 是一个 2 行 5 列的二维数组,其中每一行都是由数字 1 到 10 组成。
`arr[0:2, 1:4]` 是一个切片操作,它会选取 arr 的第 0 行到第 1 行(不包括第 2 行),第 1 列到第 3 列(不包括第 4 列)的元素,即:
```
[[2 3 4]
[7 8 9]]
```
具体的运算逻辑如下:
1. `arr[0:2]` 会选取 arr 的第 0 行和第 1 行,因为切片的结束索引不包括在内,所以这里可以写成 `arr[:2]`。
```
[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
```
2. `arr[0:2,1:4]` 会在第 1 列到第 3 列中选取元素,即:
```
[[2 3 4]
[7 8 9]]
```
因此,最终的结果就是 `[[2 3 4] [7 8 9]]`。
相关问题
下列选项中,可创建一个2行3列数组的是() A. Arr=np.array([1,2,2]) B. Arr=np.array([1,2,3],[3,4,5]) C. Arr=np.array([1,2],[3,4]) D. Arr=np.ones((3,3))
正确答案是 D. Arr=np.ones((2,3))。可以使用 NumPy 库中的 ones() 函数创建指定大小的全1数组,传入一个元组作为参数,元组中指定数组的形状,例如传入 (2,3) 可以创建一个 2 行 3 列的数组。选项 A 中传入的参数只有一个,创建的是一个一维数组;选项 B 中传入的参数有两个,不符合语法规则;选项 C 中的数组形状是 2 行 2 列,不符合要求。
arr_x = np.array([1, 5, 7]) arr_y = np.array([2, 6, 8]) arr_con = np.array([True, False, True]) arr_res=np.where( , , ) 补齐参数,使得结果arr_res=[1,6,8]
arr_x = np.array([1, 5, 7])
arr_y = np.array([2, 6, 8])
arr_con = np.array([True, False, True])
arr_res=np.where(arr_con, arr_x, arr_y)
# 结果为 [1, 6, 8]
阅读全文