问题标签 [numpy-slicing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
300 浏览

python - 结构化 numpy 数组的索引

我有一个np.ndarray(称之为arr),看起来像这样:

(也许我不应该使用 numpy 数组来处理此类数据?)

现在我想用arr. 例如,我想在所有子数组(单个数字)中的所有值“x”和“y”中找到总最小值。我的解决方案看起来相当糟糕,这意味着我不明白如何使用结构化数组(尽管阅读了文档和官方教程):

做这样的事情显然是不切实际的。如何计算我想要的最小值?我想做的下一件事是将旋转矩阵应用于所有“x,y”。在我编造一些比上面的代码更可怕的东西之前,我想我最好理解我做错了什么。非常感谢您的帮助!

0 投票
1 回答
40 浏览

python - 有效地索引二维数组中的位置列表

这个函数需要一些tictactoe板并返回合法尝试的动作(-1代表“O”,1代表“X”,0是空格)

它工作正常,但“boards”只是一个矩形 numpy 数组,“moves”是一个列表。我认为必须有一种更快的方法来使用 numpy 完成此任务。有任何想法吗?

如果它不能提高效率 - 很高兴知道这个问题是什么使它难以优化。

编辑:

这个棋盘数组显示了两个游戏,每个游戏都有 4 个历史状态。

此移动数组显示两个索引。因此,感兴趣的位置是:

所以在这个例子中,我们会从我们的 fxn 中得到以下回报:

EDIT2:一个更核心的例子:

@AlexanderCécile 我想问题的一部分是我不知道如何使用列表作为索引。例如,我不知道如何减少这个循环......

其中 len(index_list) == len(legal)

如果我能做到这一点,那么其他一切都应该使用 np.nonzero

0 投票
1 回答
31 浏览

python - 从具有索引列表的多维数组中选择

假设我有一个大小为batchx max_lenx的数组output_size,其中batch,max_lenoutput_size都对应于正自然数。我有一个索引列表,这些索引对应于维度 1(即max_len)中的各个项目。给定这些索引,我如何从数组中进行选择?

作为一个具体的例子,假设我有以下内容:

当我选择l给定时,idx我得到:

我也尝试过np.take但达到了相同的结果:

但是,我正在关注的输出是(4,1,6)因为我试图让一个项目查看batch(即第一维)中的每个元素。我怎样才能产生具有正确形状的输出?

0 投票
0 回答
47 浏览

python - 使用列表中的三元组索引 numpy 数组

我有一个表示三元语言模型的 3d numpy 数组 A。所以 A[i, i-1, i-2] 是概率 $P(w_i|w_{i-1},w_{i-2})$,其中 $w$ 是连续的单词。我想提取一系列单词的所有概率。现在我正在使用以下内容:

词是某些词汇中词的索引。我的问题是,这可以通过 numpy 索引有效地矢量化吗?单词列表可能真的很长,并且以这种方式循环可能会非常昂贵,因为它将针对许多序列进行。

0 投票
2 回答
88 浏览

python - 试图用python矩阵中的索引切片来理解语法

我一直在查看并解释一些示例代码,并且在理解一些切片语法时遇到了一些麻烦。在某些情况下,我正在研究一个计算程序,该程序使用有限差分法来近似正方形区域的温度。

这是一些代码:

最后一点是我无法理解的。我不确定冒号和逗号在 T[] 边界条件中的确切位置。代码的下一部分继续使用 T[i,j] 进行 for 循环。就像看第一个一样,它似乎在 T 切片的第一个索引中从 9 (lenY-1) 到列表末尾,而在第二个索引中不切片任何内容,然后将其设置为 100。我知道这是在做沿顶部边界 100 的温度,我只是不确定从目前的语法来看这是如何发生的。

0 投票
1 回答
40 浏览

python - 如何根据条件将中心列放在 3d 数组中?

给定一个 3d 数组:

我想删除第 9 个“列”不是 -1 的地方结果如下所示:

背景:这些是3 tictactoe 游戏的历史。尺寸是这样的:

a.shape =(游戏编号,历史状态,状态属性)

所以我试图收集玩家-1轮到的所有游戏。

0 投票
0 回答
651 浏览

python - 将 2d 的 numpy 数组转换为 1d 的 numpy 数组

美好的一天,我正在尝试通过调用 numpy.polyfit() 来运行回归分析,但我在 x 变量上遇到一维维度错误,该变量恰好有 13 列和 506 行。我能够将 x 变量从数据帧转换为 numpy 数组,但形状仍然是二维的。在我能够在数据集上运行 polyfit 之前,x 变量需要为一维形状。我检查了类似的问题,但似乎没有一个可以回答我的问题。

以下是我的代码:

下面是 x 变量的形状

x.形状

(506, 12)

以下是错误消息:

--> 553 raise TypeError("expected 1D vector for x")

TypeError: x 的预期一维向量

当我尝试重塑时,我得到了一个格式如下的数组:

数组([[ 65.2 , 396.9 , 0. , ..., 15.3 , 1. , 6.575],

我希望它是这样的,当我打电话给 x. 形状,我应该得到(12),即列将变为行。任何有用的解决方案将不胜感激。谢谢。

0 投票
1 回答
119 浏览

numpy - 我正在尝试从 2D numpy 数组中获取 1D 切片,但出现问题

我正在尝试使用 3-sigma 规则从我的数据中过滤出明显的测量错误。x 是测量点的 numpy 数组,y 是测量值的数组。为了从我的数据中删除错误的点,我压缩 x.tolist() 和 y.tolist(),然后过滤每个元组的第二个元素,然后我需要将我的 zip 转换回两个列表。我试图首先将我的元组列表转换为列表列表,然后将其转换为 numpy 2D 数组,然后取两个 1D 切片。看起来第一个切片是正确的,但随后它输出以下内容:

我不明白我在做什么错。这是代码:

0 投票
4 回答
186 浏览

python - numpy:切掉 2 列

考虑以下数据:

前三列是年、月和日。
其余 12 列是当天一个国家 12 个地点的平均风速(节)。

我想要做的是丢失第 2 列和第 3 列(索引 1 和 2),以便获得以下数据:

以下工作,但我不喜欢它,因为如果我在数据中有很多列(即很多位置),它不会扩展。

是否可以在不枚举列号的情况下实现它?我可以通过切片来实现吗?

0 投票
0 回答
45 浏览

python - 填充已经拆分的 numpy 数组

我试图避免在循环期间使用列表列表和追加,所以我想我可以创建一个大np.zeros数组,然后用np.split它来分批拆分它,并填充这些批次。代码如下所示:

请注意,最后,对于每次迭代,all_params[:][i].shape == param_ts.shape. 由于某种原因,数组中的数组都np.zeros在循环之后而不是被填充。任何想法我做错了什么?

谢谢!

PS我也不知道这是否会比列表和附加列表更快,但我也想尝试一下。最后甚至可能不值得。