让
a = np.array([[1, 2], [3, 4]])
a
array([[1, 2],
[3, 4]])
接着使用resize
函数
b = np.resize(a, (3, 3))
b
array([[1, 2, 3],
[4, 1, 2],
[3, 4, 1]])
b
现在已经拥有了所有的来自a
的信息,但顺序可能有些混乱。是否有一种方法可以利用这个信息创建一个看起来像左上角的矩阵,但现在有了一个新的列和一个新的行,值为np.nan?
c = np.empty(b.shape)
c.fill(np.nan)
c[:a.shape[0], :a.shape[1]] = a
c
array([[ 1., 2., nan],
[ 3., 4., nan],
[ nan, nan, nan]])
显然,上述代码实现了相同的功能。我只是不禁想到,可以使用
resize
以某种方式更高效地实现这一点。
c.resize
用0填充,但仍按扁平化顺序。两种形式的resize
都不常用。 - hpaulj