- Ho una matrice numpy con forma di (4601, 58).
- Voglio dividere la matrice in modo casuale come per il 60%, 20%, 20% diviso in base al numero di righe
- Questo è per compito l'apprendimento automatico ho bisogno
- C'è una funzione NumPy che seleziona casualmente le righe?
risposta
è possibile utilizzare numpy.random.shuffle
import numpy as np
N = 4601
data = np.arange(N*58).reshape(-1, 58)
np.random.shuffle(data)
a = data[:int(N*0.6)]
b = data[int(N*0.6):int(N*0.8)]
c = data[int(N*0.8):]
Se si desidera selezionare in modo casuale le righe, si potrebbe utilizzare random.sample
dalla libreria standard di Python:
import random
population = range(4601) # Your number of rows
choice = random.sample(population, k) # k being the number of samples you require
random.sample
campioni senza sostituzione, in modo da non è necessario preoccuparsi di righe ripetute finire in choice
. Dato un array numpy chiamato matrix
, è possibile selezionare le righe tagliando, in questo modo: matrix[choice]
.
Di, naturalmente, k
può essere uguale al numero di elementi totali nella popolazione e quindi choice
conterrà un ordinamento casuale degli indici per le righe. Quindi puoi dividere choice
come preferisci, se è tutto ciò di cui hai bisogno.
Un complemento alla risposta di HYRY se si vuole mescolare costantemente più array x, y, z con lo stesso prima dimensione: x.shape[0] == y.shape[0] == z.shape[0] == n_samples
.
Si può fare:
rng = np.random.RandomState(42) # reproducible results with a fixed seed
indices = np.arange(n_samples)
rng.shuffle(indices)
x_shuffled = x[indices]
y_shuffled = y[indices]
z_shuffled = z[indices]
E quindi procedere con la scissione di ciascun array mescolate come in risposta di HYRY.
Poiché è necessario per l'apprendimento automatico, ecco un metodo che ho scritto:
import numpy as np
def split_random(matrix, percent_train=70, percent_test=15):
"""
Splits matrix data into randomly ordered sets
grouped by provided percentages.
Usage:
rows = 100
columns = 2
matrix = np.random.rand(rows, columns)
training, testing, validation = \
split_random(matrix, percent_train=80, percent_test=10)
percent_validation 10
training (80, 2)
testing (10, 2)
validation (10, 2)
Returns:
- training_data: percentage_train e.g. 70%
- testing_data: percent_test e.g. 15%
- validation_data: reminder from 100% e.g. 15%
Created by Uki D. Lucas on Feb. 4, 2017
"""
percent_validation = 100 - percent_train - percent_test
if percent_validation < 0:
print("Make sure that the provided sum of " + \
"training and testing percentages is equal, " + \
"or less than 100%.")
percent_validation = 0
else:
print("percent_validation", percent_validation)
#print(matrix)
rows = matrix.shape[0]
np.random.shuffle(matrix)
end_training = int(rows*percent_train/100)
end_testing = end_training + int((rows * percent_test/100))
training = matrix[:end_training]
testing = matrix[end_training:end_testing]
validation = matrix[end_testing:]
return training, testing, validation
# TEST:
rows = 100
columns = 2
matrix = np.random.rand(rows, columns)
training, testing, validation = split_random(matrix, percent_train=80, percent_test=10)
print("training",training.shape)
print("testing",testing.shape)
print("validation",validation.shape)
print(split_random.__doc__)
- formazione (80, 2)
- test (10, 2)
- convalida (10, 2)
- 1. Come creare una matrice ortonormale casuale in python numpy
- 2. Matrice numpy di matrici casuali
- 3. Numpy converte scalari in matrici
- 4. Matrice di oggetti Numpy di matrici numeriche
- 5. calcola rapidamente la matrice numpy 3D casuale dall'array numpy 2D
- 6. disegna elemento casuale in numpy
- 7. Reshape una matrice in NumPy
- 8. Converti matrice 1D in matrice numpy
- 9. Moltiplicare più matrici in numpy
- 10. Seleziona le celle in modo casuale dall'array NumPy - senza sostituzione
- 11. Splitting un array NumPy in due matrici
- 12. Genera matrice binaria casuale
- 13. matrici Growing columnwise in NumPy
- 14. Matrice di permutazione casuale
- 15. Python come combinare due matrici in numpy
- 16. Generazione di matrici simmetriche in Numpy
- 17. NumPy matrice inganno - somma dei tempi inversi matrici
- 18. NumPy moltiplicazione di matrici di efficienza per matrice struttura nota
- 19. avvolgere una matrice numpy in python
- 20. C'è un modo per invertire in modo efficiente un array di matrici con numpy?
- 21. Matrici di oggetti Numpy
- 22. Ottenere somme di coppie di elementi in una matrice NumPy
- 23. Applicazione funzione su matrice/riga matrice numpy
- 24. Come seleziono un elemento casuale da una matrice in Python?
- 25. Ottenere attributi da matrici di oggetti in NumPy
- 26. Come calcolare una matrice di kernel gaussiana in modo efficiente in numpy?
- 27. Matrici multiple in matrice di celle Matlab?
- 28. Velocizza calcolo a matrice casuale
- 29. Aggiunta di una matrice 1-D a una matrice 3D in Numpy
- 30. Ordina una matrice NumPy come un tavolo