当前位置: 首页 > 面试题库 >

numpy中有arange / linspace的多维版本吗?

南门烈
2023-03-14
问题内容

我想要一个2d NumPy数组(x,y)的列表,其中每个x分别位于{-5,-4.5,-4,-3.5,…,3.5、4、4.5、5}中,并且与y相同。

我可以做

x = np.arange(-5, 5.1, 0.5)
y = np.arange(-5, 5.1, 0.5)

然后遍历所有可能的对,但是我敢肯定有更好的方法…

我想要一些看起来像这样的东西:

[[-5, -5],
 [-5, -4.5],
 [-5, -4],
 ...
 [5, 5]]

但是顺序并不重要。


问题答案:

您可以使用np.mgrid它,它通常比np.meshgrid在一步中创建数组要方便得多:

import numpy as np
X,Y = np.mgrid[-5:5.1:0.5, -5:5.1:0.5]

对于类似linspace的功能,请0.5用一个复数代替步(即),该复数)的大小指定了序列中所需的点数。使用此语法,将与上述相同的数组指定为:

X, Y = np.mgrid[-5:5:21j, -5:5:21j]

然后,您可以按以下方式创建对:

xy = np.vstack((X.flatten(), Y.flatten())).T

正如@ali_m所建议的,这可以全部在一行中完成:

xy = np.mgrid[-5:5.1:0.5, -5:5.1:0.5].reshape(2,-1).T

祝你好运!



 类似资料:
  • 问题内容: 我正在使用arange函数来定义for循环迭代并获得意外结果。 满足以下条件: 仍使用8.35的停止值,如下所示 产生以下 但是我希望我的射程结束于8.35!我知道我可以使用> 8.35和<8.4的止损值来获得我的结果,但是为什么它与众不同并且在我看来不一致? 编辑:我正在使用2.7版 问题答案: 也许这与浮点数的限制有关。由于机器的精度,不可能将所有可能的值完美地存储为浮点数。例如:

  • 问题内容: 我想为numpy实现itertools.combinations。基于此讨论,我有一个适用于一维输入的函数: 输出是有意义的: 但是,最好将它扩展到ND输入,其中附加的维度仅使您可以快速地一次进行多个调用。因此,从概念上讲,如果产生了,然后 产生了,那么应该产生“和”仅代表平行的行或列(无论哪个有意义)。(同样,对于其他尺寸) 我不确定: 如何使尺寸以与其他函数工作方式一致的逻辑方式工

  • 问题内容: 我有一个二维数组,即序列数组也是数组。对于每个序列,我想计算自相关,因此对于(5,4)数组,我将获得5个结果或维度为(5,7)的数组。 我知道我可以循环浏览第一个维度,但这很慢,也是我的最后选择。还有另一种方法吗? 谢谢! 编辑: 根据选择的答案以及mtrw的评论,我具有以下功能: 请注意,在我的代码中,length是一个全局变量,因此一定要声明它。我也没有将结果限制为实数,因为我还需

  • 问题内容: numpy中最简单的方法来反转数组的最内部值是这样的: 这样我得到以下结果: 非常感谢你! 问题答案: 怎么样: 而最后一个维度的反方向是: 要么 尽管我更喜欢后者,因为前两个维度是隐式的,因此很难看到正在发生的事情。

  • 我正在优化反向传播算法的实现,以训练神经网络。我正在研究的一个方面是在数据点集(输入/输出向量)上执行矩阵运算,这是一个由numpy库优化的批处理过程,而不是遍历每个数据点。 在我的原始算法中,我做了以下操作: 然后,我将所述矩阵扩展为张量,其中第一个形状索引将引用数据集。如果我有3个数据集(为了简单起见),矩阵将如下所示: 仅使用np.tensordot或其他numpy操作,如何生成C? 我想答

  • 本文向大家介绍浅谈numpy中linspace的用法 (等差数列创建函数),包括了浅谈numpy中linspace的用法 (等差数列创建函数)的使用技巧和注意事项,需要的朋友参考一下 linspace 函数 是创建等差数列的函数, 最好是在 Matlab 语言中见到这个函数的,近期在学习Python 中的 Numpy, 发现也有这个函数,以下给出自己在学习过程中的一些总结。 (1)指定起始点 和