python - Python - 序列维度的问题
问题描述
我想在 Python 中创建以下 0 和 1 的序列:
{0, 1,1,1,1, 0,0, 1,1,1, 0,0,0, 1,1, 0,0,0,0, 1}
所以首先是 1 个 0 和 4 个 1,然后是 2 个 0 和 3 个 1,然后是 3 个 0 和 2 个 1,最后是 4 个 0 和 1 个 1。最终数组的尺寸应该是 20x1,但我的代码给了我 4x2 的尺寸。有谁知道我该如何解决这个问题?
这是我的代码:
import numpy as np
seq = [ (np.ones(n), np.zeros(5-n) ) for n in range(1,5)]
提前谢谢了!
解决方案
对于每次迭代,您创建一个包含两个事物的元组,因此结果为 4x2。您可以通过将数组元素连接在一起来将其变为您想要的形式,但是您的序列有一个模式;您可以利用它看起来像一个 1 和 0 的三角矩阵,然后您可以将其展平。
n = 5
ones = np.ones((n, n), dtype=int)
seq = np.triu(ones)[1:].flatten()
输出:
array([0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1])
推荐阅读
- r - 如何水平显示时间序列预测值?
- python - Django模板中两个块之间的变量上下文?
- javascript - 灰色的 Chrome 扩展程序仅可用于登录后 manifest.json 中声明的站点,否则在所有其他站点上显示为灰色
- javascript - 如何将 js 变量放入 jstl 作为查找 hashmap 的关键?
- c++ - sublime text3 clang-format 致命错误:找不到“iostream”文件
- xml - Powershell & XPath 提取节点的字符串表示
- ms-access - MS Access 表单 - 锁定列以防止编辑
- asp.net-core - 依赖注入到asp.net核心中的视图模型类
- laravel - 直接访问 Laravel 自定义 Pivot 类
- php - Magento2:如何使用平板代替 EAV?