Python 函数的作用是什么?输出用于什么?
下面显示了Python 函数的作用是什么?输出用于什么?,python,arrays,numpy,indexing,numpy-ndarray,Python,Arrays,Numpy,Indexing,Numpy Ndarray,下面显示了numpy.ix()函数的输出。输出的用途是什么?它的结构非常独特 import numpy as np >>> gfg = np.ix_([1, 2, 3, 4, 5, 6], [11, 12, 13, 14, 15, 16], [21, 22, 23, 24, 25, 26], [31, 32, 33, 34, 35, 36] ) >>> gfg (array([[[[1]]], [[[2]]], [[[3]
numpy.ix()
函数的输出。输出的用途是什么?它的结构非常独特
import numpy as np
>>> gfg = np.ix_([1, 2, 3, 4, 5, 6], [11, 12, 13, 14, 15, 16], [21, 22, 23, 24, 25, 26], [31, 32, 33, 34, 35, 36] )
>>> gfg
(array([[[[1]]],
[[[2]]],
[[[3]]],
[[[4]]],
[[[5]]],
[[[6]]]]), array([[[[11]],
[[12]],
[[13]],
[[14]],
[[15]],
[[16]]]]), array([[[[21],
[22],
[23],
[24],
[25],
[26]]]]), array([[[[31, 32, 33, 34, 35, 36]]]]))
它基本上用于创建N个数组掩码或索引数组,每个数组引用不同的维度。 例如,如果我有一个3d np.ndarray,并且我只想获取其中的一些条目,我可以使用numpy.ix创建3个数组,这些数组的形状类似于(N,1,1)(1,N,1)和(1,1,N),包含3个轴中每个轴的相应索引 请看下面的示例。它们是不言自明的。
此函数不常用。 我认为它用于一些代数运算,如叉积和它的推广。根据: 从多个序列构造开放网格。 此函数获取N个一维序列并返回N个输出,每个输出都有N个维度,这样形状在除一个维度外的所有维度中都是1,而具有非单位形状值的维度在所有N个维度中循环。 使用ix_uu可以快速构造索引数组,对叉积进行索引。[np.ix([1,3],[2,5])返回数组[[a[1,2]a[1,5]],[a[3,2]a[3,5]] 的主要用途是创建开放网格,以便我们可以使用它从数组(特定子数组)中选择特定索引。一个容易理解的例子是: 假设您有一个形状为
(5,5)
的二维数组,并且希望选择通过选择行1
和3
以及列0
和3
构建的子数组。您可以使用np.ix
创建(索引)网格,以便能够选择子阵列,如下例所示:
a = np.arange(5*5).reshape(5,5)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
sub_indices = np.ix_([1,3],[0,3])
(array([[1],
[3]]), array([[0, 3]]))
a[sub_indices]
[[ 5 8]
[15 18]]
这基本上是从a
中选择的子数组,它位于行数组([[1],[3]])
和列数组([[0,3]])
:
第0列第3列
| |
v v
[[ 0 1 2 3 4]
[5 6 7 8 9]我读过numpy.ix()文档
。非常简短。您能为我的问题提供更详细、更简单的解释吗?例如,详细说明在@SunBear中何时以及如何使用它。文档已完成。请指出一个具体问题。堆栈溢出无法替代numpy的优秀文档。如果您有文档的某些特定部分存在问题,但这只是未能解决问题read@MadPhysicist你的评论带有评判性和专横性。这与SO鼓励人们通过提问学习的精神背道而驰。我读过numpy文档,但不理解,因此我的问题是我试图学习。请不要怀疑我学习的努力n、 @MadPhysicast,我也被告知海报-“阅读文档。”熊,我认为文档中的第一个示例非常好地展示了2d索引的使用。你的示例更复杂,但同样的解释适用。它是一个(5,1,1,1)、(1,5,1,1)、(1,1,5,1)和(1,1,1,1,5,1)数组的元组,可以用来选择(6,6,6)阻止一个更大的4d数组。这也是一个Python函数,因此您可以阅读代码本身。@SunBear:如果您阅读了文档中的某个内容,但不理解它,请在提问时指出文档中您不理解的特定内容。否则,您邀请的答案将无法澄清您的实际想法由使用。假设文档不存在,并且有人发布文档内容作为您问题的答案。您会在该答案下留下什么评论,以及您会要求回答者澄清什么?将该评论的材料提前纳入您的问题,我们将更好地为您提供帮助。Tha谢谢你出色的简化解释。我了解该函数的功能以及如何使用它。;)
col 0 col 3
| |
v v
[[ 0 1 2 3 4]
[ 5 6 7 8 9] <- row 1
[10 11 12 13 14]
[15 16 17 18 19] <- row 3
[20 21 22 23 24]]