亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用numpy將基于二維數組的列拆分為python中的兩個二維數組

使用numpy將基于二維數組的列拆分為python中的兩個二維數組

郎朗坤 2022-05-19 16:15:21
我有一個由 19 行和 1280 列組成的二維數組。我想將它分成 2 個數組,由 19 行組成,70% 的列用于訓練,30% 的列用于測試。這些列是隨機選擇的。我的代碼在 python 中.請幫助我。謝謝
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

編輯為包括隨機洗牌


您可以使用slicing將數組切片為所需的形狀并numpy.random.shuffle()獲得隨機數組索引。


import numpy as np

from copy import deepcopy


# create example data

num_cols, num_rows = 10, 3

arr = np.array([[f'{row}_{col}' for col in range(num_cols)] for row in range(num_rows)])


# create a list of random indices

random_cols = list(range(arr.shape[1]))

np.random.shuffle(random_cols)


# calculate truncation index as 70% of total number of columns

truncation_index = int(arr.shape[1] * 0.7)


# use arrray slicing to extract two sub_arrays

train_array = arr[:, random_cols[:truncation_index]]

test_array = arr[:, random_cols[truncation_index:]]


print(f'arr: \n{arr} \n')

print(f'train array: \n{train_array} \n')

print(f'test array: \n{test_array} \n')

帶輸出


arr: 

[['0_0' '0_1' '0_2' '0_3' '0_4' '0_5' '0_6' '0_7' '0_8' '0_9']

 ['1_0' '1_1' '1_2' '1_3' '1_4' '1_5' '1_6' '1_7' '1_8' '1_9']

 ['2_0' '2_1' '2_2' '2_3' '2_4' '2_5' '2_6' '2_7' '2_8' '2_9']] 


train array: 

[['0_5' '0_8' '0_0' '0_7' '0_6' '0_1' '0_4']

 ['1_5' '1_8' '1_0' '1_7' '1_6' '1_1' '1_4']

 ['2_5' '2_8' '2_0' '2_7' '2_6' '2_1' '2_4']] 


test array: 

[['0_3' '0_9' '0_2']

 ['1_3' '1_9' '1_2']

 ['2_3' '2_9' '2_2']]


查看完整回答
反對 回復 2022-05-19
  • 1 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號