当前位置: 首页 > 面试题库 >

基于其他阵列形状的零垫阵列

帅煌
2023-03-14
问题内容

我有K个特征向量,它们全部共享维n,但具有可变维m(nxm)。他们都一起生活在一个清单中。

to_be_padded = []

to_be_padded.append(np.reshape(np.arange(9),(3,3)))

array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

to_be_padded.append(np.reshape(np.arange(18),(3,6)))

array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])

to_be_padded.append(np.reshape(np.arange(15),(3,5)))

array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

我正在寻找的是一种聪明的方法,以零填充这些np.arrays的行,以便它们都共享相同的维m。我曾尝试使用np.pad解决它,但我还无法提出一个漂亮的解决方案。朝正确方向的任何帮助或推动将不胜感激!

结果应该使数组看起来像这样:

array([[0, 1, 2, 0, 0, 0],
       [3, 4, 5, 0, 0, 0],
       [6, 7, 8, 0, 0, 0]])

array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17]])

array([[ 0,  1,  2,  3,  4, 0],
       [ 5,  6,  7,  8,  9, 0],
       [10, 11, 12, 13, 14, 0]])

问题答案:

您可以使用np.pad它,它也可以2-D使用指定填充宽度的元组填充数组((top, bottom), (left, right))。为此,您可以定义:

def pad_to_length(x, m):
    return np.pad(x,((0, 0), (0, m - x.shape[1])), mode = 'constant')

用法

您可以从查找ndarray具有最高列数的开始。假设您有两个,a并且b

a = np.array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

b = np.array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

m = max(i.shape[1] for i in [a,b])
# 5

然后使用此参数填充ndarrays

pad_to_length(a, m)
array([[0, 1, 2, 0, 0],
       [3, 4, 5, 0, 0],
       [6, 7, 8, 0, 0]])


 类似资料:
  • 我假设用一个数字数组而不是字符串来编写代码,它们必须是双精度的。我写代码的方式,我知道的唯一方式,是有效的。也许我把它弄得太复杂了,一个数组会让它变得简单。我是编程新手,几天之内就开始了。请帮忙。 所需要的是:编写一个代码,将平均10个数字的输入,并显示平均值以及它们是否通过或失败。如果 我们必须使用数组,我们需要使用JOptionPane。showMessageDialog。,数字必须是两倍,并

  • 是否有一种内置的方法来使用proptypes来确保传递给组件的对象数组实际上是特定形状的对象数组? 也许是这样的? 我是不是漏了什么特别明显的东西?看来这会很受欢迎。

  • 我正在编写一个代码,它是一个让用户根据他们单击的位置在屏幕上创建圆圈的程序。我尝试的是在第一个事件处理程序中放置createnew cle方法,但它所做的只是给我带来问题。到目前为止,我正在尝试以不同的方式处理问题。我现在使用ArrayList将所有形状组合在一起并将它们显示在窗格上。但是当我运行代码时,圆圈不会显示。 这是我的代码:

  • 这一节将给你展现更多关于矩阵和数组的内容。集中在以下内容: 线性代数 数组 多元数据

  • 问题内容: 我目前有一张看起来像这样的表: 我需要做的是获得“ 费率”列的信息,但每个名称仅获得一次。例如,我有三行John Doe,每行的比率为8。我需要将这些行的比率设为8,而不是24,因此它为每组名称都对比率进行一次计数。 当然是行不通的,因为我试图对比率列而不是名称求和。我知道在对单个记录进行计数时,我可以使用,这就是我试图从中得到的行为类型。 我怎样才能为每个名字获得一个比率? 提前致谢

  • 问题内容: 我想知道从ArrayList转换为Array是否安全/建议?我有一个文本文件,每行一个字符串: 我想将它们读入数组列表,然后将其转换为数组。建议这样做/合法吗? 谢谢 问题答案: 是的,将转换为是安全的。一个好主意取决于您的预期用途。您需要提供的操作吗?如果是这样,请将其保留为。否则转换掉! 输出