python - 制作一个 numpy 零数组,其中每行有 8 个零,对应于输出的索引更改为 1
问题描述
我想创建一个 numpy 零数组:
Y_numpy = [[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
...]
我有:
Y = [1,2,7,8,3,4,6,7,8,8,8,8,8,4,4,4,6,3,2,3,4,5,6,7,...]
我的目标是将索引处的值更改为 Y_numpy 中的“1”,这与每个 Y 的值相同。
例如:
Y[0] = 1 => Y_numpy[0] = [1,0,0,0,0,0,0,0]
Y[1] = 2 => Y_numpy[1] = [0,1,0,0,0,0,0,0]
Y[2] = 7 => Y_numpy[2] = [0,0,0,0,0,0,1,0]
Y[3] = 8 => Y_numpy[3] = [0,0,0,0,0,0,0,1]
Y[4] = 3 => Y_numpy[4] = [0,0,1,0,0,0,0,0]
Y[5] = 4 => Y_numpy[5] = [0,0,0,1,0,0,0,0]
...
如果您需要任何其他信息或更多解释,请告诉我。
解决方案
In [179]: Y = [1,2,7,8,3,4,6,7,8,8,8,8,8,4,4,4,6,3,2,3,4,5,6,7]
In [180]: len(Y)
Out[180]: 24
In [181]: Ynum = np.zeros((24,8),int)
二维数组赋值;每行一个值:
In [184]: Ynum[np.arange(24),np.array(Y)-1] = 1
In [185]: Ynum[:6,:]
Out[185]:
array([[1, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0]])
推荐阅读
- python-3.x - 使用 MatPlotLib 时出现 Python Tkinter 错误
- javascript - 在javascript中调试url
- data-warehouse - 我们知道行数据的数据缓存和组值的索引缓存。聚合器在操作之前会处理所有要缓存的数据吗?
- bash - 使用 inotify 和命令行工具监视和搜索文件
- authentication - 如何在 Laravel 7 中使用另一个表进行身份验证
- javascript - 如何检查对象是否包含字符串值?
- oop - 对理解 OOP 中的抽象和封装感到困惑
- javascript - 导航栏在页面上正确适应 js
- python - 在 CNN,张量流中初始化后形状怪异的内核
- haskell - 使用简单函数使用 'print' 引起的模棱两可的类型变量 'a0'