【问题标题】:NumPy Slicing HackerRankNumPy 切片 HackerRank
【发布时间】:2022-01-16 17:05:12
【问题描述】:

我编写了一个名为array_slice 的函数,它从用户那里获取四个数字nn_dimn_rown_col,并执行下面给出的数组操作。

说明:

  1. 创建一个数组x,形状为(n_dim, n_row, n_col),具有前n 个自然数。
  2. 创建一个布尔数组b,形状为(2,)
  3. 打印以下表达式的值:x[b]x[b,:,1:3]

例如,如果我们输入30, 2, 3, 5,对于每个对应的参数nn_dimn_rown_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 尝试了所有可能的方法,但我无法得到解决方案。请帮帮我

【问题讨论】:

    标签: arrays numpy


    【解决方案1】:

    我已经使用np.arrangex 数组尝试了以下代码:

    x = np.arange(n, dtype=int).reshape(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]]]
    

    【讨论】:

    • 好一个。它通过了谢谢。
    • @JohnW 欢迎来到 SO。如果有任何答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。谢谢。
    猜你喜欢
    • 2021-11-17
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2020-12-11
    • 2019-06-19
    • 2011-08-30
    • 2019-10-14
    相关资源
    最近更新 更多