问题标签 [array-broadcasting]
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.
python - Numpy - 用向量行创建矩阵
我有一个向量[x,y,z,q]
,我想创建一个矩阵:
有 m 行。我认为这可以使用广播以某种聪明的方式完成,但我只能考虑使用 for 循环来完成。
python - 如何理解这个 np.einsum('kij',A) 的结果?
例如,
这仍然A
没有问题。
但如果我这样做print np.einsum('kij', A)
的形状是(3, 4, 2)
。不应该(4, 2, 3)
吗?
print np.einsum('cab', A)
形状的结果也(4, 2, 3)
没有问题。为什么print np.einsum('kij', A)
不一样?
python - python中累积和的向量化
我正在尝试对我的代码进行矢量化/广播(不确定它的正式名称)以使其更快,但我不太明白。我认为我应该使用的是 numpy.cumsum (axis = 0),但我不知道如何(快速)在正确的数组中使用它。
我想要这段代码基本上是l1的绝对和,用于将l2中的每个元素添加到l1中的所有数字。所以这给出的不是一个答案,而是 len(l2) 数量的答案。下面的(非矢量化)代码给出了正确的输出。
任何人都可以提供答案或提示吗?
python - 有效地减去不同形状的numpy数组
使用 numpy 的优秀广播规则,您可以v
从形状 (5,3) 数组X
中减去形状 (3,) 数组
结果是一个形状 (5,3) 数组,其中每一行i
都是差异X[i] - v
。
有没有办法从中减去一个形状 (n,3) 数组w
,X
以便在不显式使用循环的情况下w
从整个数组中减去每一行?X
python - 用于获取锯齿状切片的 numpy 简写
我有一个我经常做的手术,我称之为“锯齿状切片”,因为我不知道它的真实名称。最好通过示例来解释:
唯一的问题是做这个a[np.arange(a.shape[0]), entries_of_interest]
索引有点麻烦(为了这个而必须构造“np.arange(a.shape [0])”似乎很愚蠢)。我想要类似:
操作员的东西,但:
做别的事情。有没有更简洁的方法来做这个操作?
最佳答案:
不,本机 numpy 没有更好的方法。如果需要,您可以为此创建一个辅助函数。
python - 未知维度张量的元素乘法
如何对具有以下形状的张量进行元素乘法?这里的第二个数组总是假定为 2D。
我想广播所有标有?的维度,其中我不知道先验的数字。我考虑过的可能解决方案(但不知道该怎么做):
- 将可变数量的轴添加到第二个数组
- 反转两个数组的轴的顺序,然后再次反转它们
任何指针都会很棒。
python - 将单独的 1D np.arrays 转换为 2D np.arrays 列表
我正在尝试将三个一维数组转换为二维数组列表。我设法通过创建一个空的 ndarray 并逐行填充它来做到这一点。有人可以告诉我一个更优雅的方法吗?
当前有效的不雅方法:
python - 矩阵和向量之间的numpy广播?
我正在学习 numpy 线性阿尔格巴,我想执行一个简单的计算:我有:
我要计算/输出的内容:
基本上是在 m 的每一行和 v 的每个元素之间执行逐元素除法
我可能可以通过一些 for 循环来做到这一点,但我想知道“正确”的做法。
我感觉它与广播有关,但仅此而已。
谢谢。
python - 循环遍历 Pandas Dataframe 以制作虚拟变量(1 或 0 输入)的有效方法
我正在学习数据科学,并想为我的数据集制作虚拟变量。
我有一个具有“产品类别”列的数据框,该列是匹配类别的列表,类似于 ["Category1", "Category2".."CategoryN"]
我知道 Pandas 有很好的功能,可以自动生成虚拟变量(pandas.get_dummies),但在这种情况下,我不能使用它,我猜(?)。
我知道如何遍历每一行以将 1 附加到每列的匹配元素。我目前的代码是这样的:
但是,上面的代码效率不高,我不能使用它,因为我有超过 100,000 行。我想以某种方式对整个数组进行操作,但我不知道该怎么做。
有人可以帮忙吗?
python - 为什么 numpy.dot 会以这种方式表现?
我试图理解为什么 numpy 的dot
函数会这样:
现在np.dot(M, V1)
并按np.dot(M, V2)
预期行事。但V3
结果V4
令我惊讶:
我预计(2, 9, 5)
和(3, 2, 9, 5)
分别。另一方面,np.matmul
符合我的预期:矩阵乘法在第二个参数的前N - 2 个维度上广播,结果具有相同的形状:
所以我的问题是:这样做的理由是
np.dot
什么?它是服务于某个特定目的,还是应用某些一般规则的结果?