python - 从多维 NumPy 数组中保存随机值
问题描述
我有一个 149x5 NumPy 数组。我需要保存从整个数组中随机选择的一些(30%)值。另外选定的值将从数据中删除。
到目前为止我所拥有的:
# Load dataset
data = pd.read_csv('iris.csv')
# Select randomly 30%(45) of rows from dataset
random_rows = data.sample(45)
# Object for values to be saved
values = []
# Iterate over rows and select a value randomly.
for index, row in data.iterrows():
# Random between 1 - 5
rand_selector = randint(0, 4)
# Somehow save deleted value and its position in data object
value = ?? <-------
values.append(value)
# Delete random value
del row[rand_selector]
为了进一步补充,来自的数据value
稍后将与通过其他方法(数据估算)估算的值进行比较,因此我需要原始数据集中已删除值的位置。
解决方案
给定一个 2D numpy 矩阵m
,此方法将返回一个长度0.3*m.size
为 3 的数组,其中包含一个随机值及其以 m 为单位的坐标。
def pickRand30(data):
rand = np.random.choice(np.arange(data.size), size = int(data.size*0.3))
indexes1 = rand//data.shape[1]
indexes2 = rand%data.shape[1]
return np.array((data[indexes1, indexes2], indexes1, indexes2)).T
您可以使用其坐标删除条目,但是您可能希望查看掩码数组,而不是从矩阵中删除单个条目。
推荐阅读
- android - @firebase/firestore:Firestore (7.6.0):无法访问 Cloud Firestore 后端。后端在 10 秒内没有响应
- elasticsearch - 没有post body的Elasticsearch请求查询(不允许添加body)
- c# - .Net Core 多项目 docker build
- haskell - 为什么 Data.Time.Clock.POSIX 中的 getCurrentTime 函数不能按预期工作?
- android - unity是否加载存储在 android 设备内部存储中的 3d 模型?
- jquery - Laravel 错误:未定义的变量 - rating_points
- c# - 如何为 zxing 库中的数据矩阵图像生成设置 2D 数据矩阵格式
- google-cloud-platform - GCP 实例在帐户/帐单升级后消失
- python - ZMQ 丢弃旧消息
- javascript - 使用 clearInterval 清除计时器不起作用