文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.numpy.choose

mindspore.numpy.choose(a, choices, mode='clip')[源代码]

从索引数组和要选择的数组列表构造一个新数组。给定一个包含整数的“索引”数组 a 和一个由n个数组( choices )组成的序列, a 和每个选择数组首先会根据需要广播为相同shape的数组;我们称这些数组为 BaBchoices[i], i=0,…,n-1 ,并且对于每个 i ,必然有 Ba.shape==Bchoices[i].shape 。然后,按照以下方式创建一个新数组,shape为 Ba.shape

  • 如果 mode='raise' (默认值),那么首先, a (因此 Ba )的每个元素必须在 [0, n-1] 范围内;假设 i (在该范围内)是 Ba(j0, j1, ..., jm) 位置的值——那么新数组中相同位置的值就是 Bchoices[i] 在该位置的值;

  • 如果 mode='wrap' ,则 a (因此 Ba )中的值可以是任何(带符号)整数;使用模运算将超出 [0, n-1] 范围的整数映射回该范围内;然后像上述一样构造新数组;

  • 如果 mode='clip' ,则 a (因此 Ba )中的值可以是任何(带符号)整数;负整数被映射为0;大于 n-1 的值被映射为 n-1 ;然后像上述一样构造新数组。

说明

不支持Numpy的 out 参数。不支持 mode = 'raise' ,默认 mode'clip'

参数:
  • a (int array) - 该数组必须包含 [0, n-1] 范围内的整数,其中 n 是选择数组的数量,除非使用 mode=wrapmode=clip ,在这些情况下,任何整数都可以。

  • choices (数组的序列) - 选择数组。 a 和所有 choices 必须可以广播为相同的shape。如果 choices 本身是一个数组,则其最外层维度(即 choices.shape[0] 对应的维度)定义为“sequence”。

  • mode ('raise', 'wrap', 'clip', 可选) - 指定如何处理超出 [0, n-1] 范围的索引:

    • 'raise' - 抛出错误;

    • 'wrap' - 循环;

    • 'clip' - 限制在范围内。'clip'模式意味着所有过大的索引都将被替换为该轴最后一个元素的索引。请注意,这将禁止使用负数进行索引。

返回:

Tensor,合并的结果。

异常:
  • ValueError - 如果 a 与任一 choices 不能被广播。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore.numpy as np
>>> choices = [[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33]]
>>> print(np.choose([2, 3, 1, 0], choices))
[20 31 12  3]
>>> print(np.choose([2, 4, 1, 0], choices, mode='clip'))
[20 31 12  3]
>>> print(np.choose([2, 4, 1, 0], choices, mode='wrap'))
[20  1 12  3]
>>> a = [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
>>> choices = [-10, 10]
>>> print(np.choose(a, choices))
[[ 10 -10  10]
 [-10  10 -10]
 [ 10 -10  10]]