【发布时间】:2022-01-16 17:05:12
【问题描述】:
我编写了一个名为array_slice 的函数,它从用户那里获取四个数字n、n_dim、n_row、n_col,并执行下面给出的数组操作。
说明:
- 创建一个数组
x,形状为(n_dim, n_row, n_col),具有前n 个自然数。 - 创建一个布尔数组
b,形状为(2,)。 - 打印以下表达式的值:
x[b]和x[b,:,1:3]
例如,如果我们输入30, 2, 3, 5,对于每个对应的参数n,n_dim,n_row,n_col,那么输出打印将是:
[[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]]
[[[ 1 2] [ 6 7] [11 12]]]
写出来的代码是:
import numpy as np
# Enter your code here. Read input from STDIN. Print output to STDOUT
def array_slice(n,n_dim,n_row,n_col):
x=np.array(n, dtype=int, ndmin=n_dim).reshape(n_row,n_col)
b=np.array([True,False],dtype="bool",ndmin=n_dim).reshape(2,)
print(x[b])
print(x[b,:,1:3])
if __name__ == '__main__':
n = int(input())
n_dim = int(input())
n_row = int(input())
n_col = int(input())
array_slice(n,n_dim,n_row,n_col)
我浏览了 NumPy 的官方文档,但仍然无法理解错误。我用 arange 和 array 尝试了所有可能的方法,但我无法得到解决方案。请帮帮我
【问题讨论】: