python - 使用没有循环的numpy在python中用数组或向量填充数组

标签 python arrays numpy vectorization

我正在尝试找到一种方法来用值行填充数组。用一个例子来表达我想要的输出要容易得多。给定一个 N x M 矩阵 array1 的输入,

array1 = np.array([[2, 3, 4],
[4, 8, 3],
[7, 6, 3]])

我想输出一个数组数组,其中每一行都是一个 N x N,由相应行的值组成。输出将是

[[[2, 3, 4],
  [2, 3, 4],
  [2, 3, 4]],
 [[4, 8, 3],
  [4, 8, 3],
  [4, 8, 3]],
 [[7, 6, 3],
  [7, 6, 3],
  [7, 6, 3]]]

最佳答案

您可以将数组从 2d reshape 为 3d,然后沿所需轴使用 numpy.repeat():

np.repeat(array1[:, None, :], 3, axis=1)

#array([[[2, 3, 4],
#        [2, 3, 4],
#        [2, 3, 4]],

#       [[4, 8, 3],
#        [4, 8, 3],
#        [4, 8, 3]],

#       [[7, 6, 3],
#        [7, 6, 3],
#        [7, 6, 3]]])

或者等效地,您可以使用 numpy.tile:

np.tile(array1[:, None, :], (1,3,1))

关于python - 使用没有循环的numpy在python中用数组或向量填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617530/

相关文章:

c - 使用指针反转字符串

C++ 从 char 数组的索引创建新字符串的最佳方法?

python - 当我尝试取 2 个矩阵的点积时出现值错误

python - Unicode解码错误: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte when deploying to Heroku

python - Python 按照什么顺序读取代码? (包含示例代码)

python - plone 4.1 - plone.app.caching 问题 - 无法减少 http 请求

javascript - 从 Javascript/Typescript 数组中删除子对象重复项

python - 无服务器框架Python lambda直接返回JSON

python - get_dummies(),异常 : Data must be 1-dimensional

python - 使用 list 或 numpy.array 根据条件应用 numpy.where