gpt4 book ai didi

python - 根据模式 numpy 重复数字

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:43 25 4
gpt4 key购买 nike

我有一个数组,例如 p = [2,3,2,4] 和一个数字,例如 n = 4。我需要根据模式 p、n-p 生成一个由 1 和 0 组成的数组。也就是说,对于 p 中的每个元素 u,都有 u 个,后面跟着 n-u 个零。使用 np.insert 操作很容易做到这一点。但是theano没有任何插入操作。是否可以在不使用循环的情况下实现这一目标?此外,给定多个这样的 ps 和相应的 ns,是否可以在不使用循环的情况下生成 ones 和 zeros 模式?这是一个例子:p的1个值:

p = [2,3,2,4,1], n=4
n-p = [2,1,2,0,3]
result = [1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,0,0]

p 的多个值:在这种情况下,所有 p 都将具有相同的维度(p 是一个二维数组)

p = [[2,3,2,4,1],[2,2,3,5,4]], n = [4, 5]
n-p = [[2,1,2,0,3],[3,3,2,0,1]]
result = [[1,1,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0]]

请注意,我在 result[0] 末尾填充了 0 以匹配 result[0] 和 result[1] 的尺寸

最佳答案

p = numpy.array([2, 3, 2, 4])
n = 4
result = (p[:, None] > numpy.arange(n)).ravel().astype(int)

比较

[[2]
[3]
[2]
[4]]

[0 1 2 3] 获取 bool 数组,然后将其展平并将其转换为整数以获得所需的输出。

关于python - 根据模式 numpy 重复数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com