【问题标题】:Python - Adding an extra row to an array parameterPython - 向数组参数添加额外的行
【发布时间】:2018-05-01 10:05:30
【问题描述】:

我需要修改一个函数的数组参数 将其添加一行 0。

MNWE:

import numpy as np

def addrow(A):
    n,p = A.shape
    temp = np.zeros((n+1,p))
    temp[:n,:] = A
    A = temp

我知道最后一行将 A 定义为局部变量 但是A[:,:]=temp 由于形状不匹配而引发错误。 没有在全局变量中输入 A 的任何想法?

谢谢

【问题讨论】:

  • Numpy 有一个 pad 函数,非常适合这样的事情。
  • 使用numpy时,通常的方法是返回一个新对象(即return np.zeros((n+1,p))
  • 如果可能,我想避免A=addrow(A)

标签: python arrays parameters


【解决方案1】:

这是你想要的吗?

>>> x = np.arange(12).reshape((4, 3))
>>> x
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
>>> shape = x.shape
>>> np.append(x, np.zeros(x.shape[1])).reshape(shape[0] + 1, shape[1])
array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.],
       [ 6.,  7.,  8.],
       [ 9., 10., 11.],
       [ 0.,  0.,  0.]])
>>>

【讨论】:

  • 我知道如何添加一行 0,我关心的是使其在数组 parameter 上(用于其他目的)。简而言之,让我的函数addrow 完成这项工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
  • 2012-10-25
  • 1970-01-01
相关资源
最近更新 更多