gpt4 book ai didi

python - `along a specific axis`操作是如何实现的?

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:52 25 4
gpt4 key购买 nike

我可以使用 numpy.sum 沿特定轴对所有元素求和,即

>>> a = numpy.array([[1,2], [3,4]])
>>> numpy.sum(a, 1)
array([3, 7])

sum along row,将每一列的元素逐一相加。

如果只有 2 或 3 个轴,我可以在 C/C++ 中使用 if...elifswith...case 来实现它,但是如果有100个轴?如何实现?

最佳答案

Numpy 数组实际上只是一维 C 数组,因此沿着单个轴的步进是通过大步跳过 C 数组来实现的,步幅的大小取决于你迭代的维度(最小步幅对于最快的维度,在 Python/C 中将是最后一个维度)。

所以你就得先计算轴对应的步幅,然后在求和的同时单步遍历数组。对于每个总和,您从数组中的一个偏移量开始(第一个为 0),该偏移量随着另一个步长而增加。

如果您想了解更多信息,可以阅读 guide to numpy 的第 15 章(不需要阅读之前的所有内容) ,它以在 C 中完成的关于 numpy 数组迭代的部分开始。

关于python - `along a specific axis`操作是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com