实现一维numpy数组 转换为2维的 1-hot数组 结果展示 fancy indexing:传递索引数组来一次返回多个数组元素。 结果展示: 结果展示: 结果展示: 上面示例代码相当于多个维度情况即: 结果
背景
a = array([1,0,3])
b = array([[0,1,0,0], [1,0,0,0], [0,0,0,1]])
python实现示例代码
import numpy as np if __name__ == '__main__': ind = np.array([1, 0, 3]) x = np.zeros((ind.size, ind.max() + 1)) x[np.arange(ind.size), ind] = 1 print(x)
[[0. 1. 0. 0.] [1. 0. 0. 0.] [0. 0. 0. 1.]]
fancy indexing介绍
索引为一维数组
import numpy as np if __name__ == '__main__': x = np.array([51, 92, 14, 71, 60, 20, 82, 86, 74, 74]) ind = [3, 4, 5] print(x[ind])
[71 60 20]
索引为二维数组
import numpy as np if __name__ == '__main__': x = np.array([51, 92, 14, 71, 60, 20, 82, 86, 74, 74]) ind = np.array([[3, 7], [4, 5]]) print(x[ind])
[[71 86] [60 20]]
多个维度
import numpy as np if __name__ == '__main__': x = np.array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]) row = np.array([0, 1, 2]) # 行 col = np.array([2, 1, 3]) # 列 print(x[row, col])
[ 2 5 11]
示例代码解释
import numpy as np if __name__ == '__main__': # ind = np.array([1, 0, 3]) # x = np.zeros((ind.size, ind.max() + 1)) # x[np.arange(ind.size), ind] = 1 x = np.array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) row = np.array([0, 1, 2]) col = np.array([1, 0, 3]) x[row, col] = 1 # 相当于找好位置后,赋值为1 print(x)
[[0. 1. 0. 0.] [1. 0. 0. 0.] [0. 0. 0. 1.]]
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算