- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试广播两个向量之间的差异。这适用于像这样的简单情况:
In[1] : data = np.array([1,2])
In[2] : centers = np.array([[2,2],[3,3]])
In[3] : data - center
Out[3] : array([[-1, 0],
[-2, -1]])
但是当我尝试做同样的事情但尺寸更大时,这是行不通的
In [4]: data = np.array([[1,2],[3,4],[6,7]])
In [5]: data
Out [5]: array([[1,2],
[3,4],
[6,7]])
In [6]: centers = np.array([[2,2],[3,3]])
In [7]: centers
Out [7]: array([[2,2],
[3,3]])
我想执行 data - centers
这样我就可以得到输出:
array([[[-1,0],
[-2,-1]],
[[1,2],
[0,1]],
[[4,5],
[3,4]]]
最佳答案
在这种情况下,您需要在 data
中插入一个额外的轴:
>>> data[:, None] - centers
array([[[-1, 0],
[-2, -1]],
[[ 1, 2],
[ 0, 1]],
[[ 4, 5],
[ 3, 4]]])
最初 data.shape
是(3, 2)
和 centers.shape
是(2, 2)
. NumPy 无法一起广播具有这些形状的数组,因为第一个轴的长度不兼容(它们的长度需要相同,或者其中一个需要为 1
)。
插入额外维度,data[:, None]
有形状 (3, 1, 2)
然后轴的长度正确对齐:
(3, 1, 2)
(2, 2)
# #
# # lengths are equal for this axis
#
# 1 is compatible with any length
关于python - NumPy 广播不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683852/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!