【问题标题】:Creating a matrix from an array using numpy使用 numpy 从数组创建矩阵
【发布时间】:2021-03-14 04:06:24
【问题描述】:

我有一个大小为 n 的 NumPy 数组 Y,包括整数。

Y = [1 1 2 0 ..... ]

如果不使用循环,是否可以形成一个矩阵(k, n),使得每列在索引位置Y[i]0 其他地方都有1?

【问题讨论】:

  • k的定义是什么?
  • 向我们展示循环尝试。

标签: python-3.x numpy matrix


【解决方案1】:

我假设nY 的长度(比如说len(Y)=4),k 可以是任意数字或np.max(Y) + 1(这里是k=3)。

import numpy as np

Y = np.array([1, 1, 2, 0])
k = np.max(Y) + 1
n = len(Y)

matrix = np.zeros((k, n))
matrix[Y, np.arange(0, n)] = 1

print(matrix)

输出:

# When k = np.max(Y) + 1
[[0. 0. 0. 1.]
 [1. 1. 0. 0.]
 [0. 0. 1. 0.]]

# When k = 5 (an arbitrary number)
[[0. 0. 0. 1.]
 [1. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2018-06-29
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多