假设我有两个数组:
DECLARE @description AS VARCHAR(50) = 'Hello World'
;WITH CTE AS (
SELECT Menu.*
FROM dbo.ItemMenu Menu
WHERE Menu.descname = @description
UNION ALL
SELECT Menu2.*
FROM dbo.ItemMenu Menu2
JOIN CTE
ON Menu2.idParent = CTE.Id
)
Update ActualMenu
SET BolActive = 1
FROM CTE Menu
JOIN dbo.ItemMenu ActualMenu
ON ActualMenu.Id = Menu.Id
其中a通常是长度为a = np.array([1,2,3,4,5])
b = np.array([6,7,8])
的1D数组,b是长度为m
的1D数组,其中n
。我想将a和b乘以元素,以便最终结果具有n!=m
形状:
(n*m, 1)
答案 0 :(得分:2)
使用broadcasting
将b
扩展为2D数组形状后,您可以使用None/np.newaxis
进行乘法运算。然后,使用.ravel
将乘法结果展平为所需的输出,如此 -
(b[:,None]*a).ravel()
这实际上是在执行外部产品,所以也可以使用np.outer
这样 -
np.outer(b,a).ravel()
示例运行 -
In [822]: a
Out[822]: array([1, 2, 3, 4, 5])
In [823]: b
Out[823]: array([6, 7, 8])
In [824]: (b[:,None]*a).ravel()
Out[824]: array([ 6, 12, 18, 24, 30, 7, 14, 21, 28, 35, 8, 16, 24, 32, 40])
In [825]: np.outer(b,a).ravel()
Out[825]: array([ 6, 12, 18, 24, 30, 7, 14, 21, 28, 35, 8, 16, 24, 32, 40])