我有一个大小为(N,1)的numpy数组。当我使用numpy.insert在数组中的某个位置插入一个值时,它将导致一个(N,)数组。从(N,)数组中减去(N,1)数组时,这稍后会引起问题。
示例:
#Random (4 x 1) array
a = np.random.rand(4,1)
#Insert a number. This results in a (4,) array
b = np.insert(a,0,10)
#Some other (5 x 1) array
c = np.random.rand(5,1)
#Because c is (5,1) and b is (5,), this subtraction is not element by
#element and results in a (5,5) array.
d = b - c
两个问题:
为什么“插入”减小数组的尺寸?
为什么从(5,1)数组中减去(5,)数组会导致(5,5)数组而不是逐元素减法?
答案 0 :(得分:1)
轴: int,可选
插入值的轴。如果 axis 为None,则首先将 arr 展平。
您未指定轴,因此insert
将数组展平作为第一步。至于减法的工作原理,就是broadcasting。