python - 使用python从给定矩阵中随机选择特征
问题描述
我有一个使用 python 创建的 6 x 6 矩阵。从矩阵中包含的 36 个值中,我想从矩阵中选择非零的任意 10 个值(它应该随机选择值,而不是通过指定位置),并且应该在最后打印所选的 10 个值。请帮我写python中的代码
import numpy as np
from numpy import random
#import Dataframe.sample as df
rows = 6
cols = 6
a = np.matrix(np.random.randint(220,376, size=(rows,cols)))
print (a)
解决方案
考虑一个 6x6 矩阵:
x = np.arange(36).reshape(6,6)
然后你可以在折叠成一维的矩阵上使用random.choice() ( flatten())
np.random.choice(x.flatten(), 10, replace=False)
得到10个随机元素。
对于 a np.matrix
,就像你的情况一样,它会改变,我不知道直接的方法。你可以做的如下。您选择索引。
selected = np.random.choice(a.shape[0]*a.shape[1], 10, replace=False)
# e.g., array([[25, 19, 5, 4, 32, 33, 13, 1, 2, 16]])
# a.shape[0]*a.shape[1]=36 in your case
最后,您获取与 flatten() 矩阵上的选定索引相对应的元素
a.flatten()[0,selected]
编辑
还有一种基于numpy.matrix.A1的直接方法
a = np.matrix(np.random.randint(220,376, size=(6,6)))
elements = np.random.choice(a.A1, 10, replace=False)
推荐阅读
- python - 如何将 youtube 视频下载到 mp3,并按“时间戳”分割
- rest - Rocketchat REST api 回复特定消息
- java - 使用 @DataMongoTest 时未注入 MockMvc
- https - nestjs 配置 https.agent
- angular - 使用角度凭据成功登录后如何从登录导航到主页
- node.js - cors 不能在具有 express 的 firebase 功能中工作
- ruby-on-rails - 使用 bulma 图标但无法显示到屏幕上?
- rust - 为什么借用检查器不明白借用切片的不同部分基本上是可以的?
- python-3.x - 比较两个字符串以获得多个结果
- c# - 如何处理溢出(添加颜色)或下溢(减去颜色)