小编n00*_*00b的帖子

添加不同形状的numpy数组

我想添加两个不同形状的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)

不漂亮 :-/

python numpy

5
推荐指数
1
解决办法
421
查看次数

从dtype创建Numpy标量

我正在尝试创建一个指定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.

有任何想法吗?

python numpy

4
推荐指数
2
解决办法
4955
查看次数

标签 统计

numpy ×2

python ×2