我想添加两个不同形状的numpy数组,但没有广播,而是将"缺失"值视为零.像一个例子可能最简单
[1, 2, 3] + [2] -> [3, 2, 3]
Run Code Online (Sandbox Code Playgroud)
要么
[1, 2, 3] + [[2], [1]] -> [[3, 2, 3], [1, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我事先不知道形状.
我正在弄乱每个np.shape的输出,试图找到包含它们的最小形状,将每个形状嵌入该形状的零编辑数组然后添加它们.但似乎有很多工作,是否有更简单的方法?
提前致谢!
编辑:通过"很多工作"我的意思是"为我做了很多工作"而不是机器,我寻求优雅而不是效率:我努力获得最小的形状同时保持它们两者是
def pad(a, b) :
sa, sb = map(np.shape, [a, b])
N = np.max([len(sa),len(sb)])
sap, sbp = map(lambda x : x + (1,)*(N-len(x)), [sa, sb])
sp = np.amax( np.array([ tuple(sap), tuple(sbp) ]), 1)
Run Code Online (Sandbox Code Playgroud)
不漂亮 :-/
我正在尝试创建一个指定dtype的numpy标量.我知道我可以做,x = numpy.int16(3)但是我不提前知道dtype.
如果我想要一个阵列那么
dtype = int
x = numpy.array(3, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
会这样做的,所以我对此寄予厚望
x = numpy.generic(3, dtype=dtype)
Run Code Online (Sandbox Code Playgroud)
但是无法创建一个实例numpy.generic.
有任何想法吗?