Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

339

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Cách dễ nhất để xáo trộn một mảng với Python là gì?

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

Machavity ♦

30.2k26 Huy hiệu vàng87 Huy hiệu bạc98 Huy hiệu đồng26 gold badges87 silver badges98 bronze badges

hỏi ngày 23 tháng 1 năm 2009 lúc 18:34Jan 23, 2009 at 18:34

3

import random
random.shuffle(array)

Đã trả lời ngày 23 tháng 1 năm 2009 lúc 18:37Jan 23, 2009 at 18:37

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

David Zdavid zDavid Z

124K26 Huy hiệu vàng249 Huy hiệu bạc275 Huy hiệu Đồng26 gold badges249 silver badges275 bronze badges

9

import random
random.shuffle(array)

Đã trả lời ngày 23 tháng 1 năm 2009 lúc 18:38Jan 23, 2009 at 18:38

Douglas Leederdouglas LeederDouglas Leeder

51.2K9 Huy hiệu vàng91 Huy hiệu bạc136 Huy hiệu đồng9 gold badges91 silver badges136 bronze badges

3

Cách khác để làm điều này bằng cách sử dụng sklearn

from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)

Output:

[2, 1, 3]
['two', 'one', 'three']

Ưu điểm: Bạn có thể ngẫu nhiên nhiều mảng đồng thời mà không làm gián đoạn ánh xạ. Và 'Random_state' có thể kiểm soát sự xáo trộn cho hành vi có thể tái tạo.

Đã trả lời ngày 24 tháng 7 năm 2017 lúc 3:30Jul 24, 2017 at 3:30

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

Qy Zuoqy ZuoQy Zuo

2.43422 Huy hiệu bạc21 Huy hiệu đồng22 silver badges21 bronze badges

4

Các câu trả lời khác là dễ nhất, tuy nhiên, một chút khó chịu khi phương pháp

import random
random.shuffle(array)
2 không thực sự trả về bất cứ điều gì - nó chỉ sắp xếp danh sách đã cho. Nếu bạn muốn chuỗi cuộc gọi hoặc chỉ có thể khai báo một mảng xáo trộn trong một dòng bạn có thể làm:

    import random
    def my_shuffle(array):
        random.shuffle(array)
        return array

Sau đó, bạn có thể làm các dòng như:

    for suit in my_shuffle(['hearts', 'spades', 'clubs', 'diamonds']):

Đã trả lời ngày 20 tháng 12 năm 2011 lúc 22:05Dec 20, 2011 at 22:05

Mark Rhodesmark RhodesMark Rhodes

9.8034 Huy hiệu vàng46 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges46 silver badges51 bronze badges

5

Chỉ trong trường hợp bạn muốn một mảng mới, bạn có thể sử dụng

import random
random.shuffle(array)
3:

import random
new_array = random.sample( array, len(array) )

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

Đã trả lời ngày 29 tháng 3 năm 2017 lúc 18:37Mar 29, 2017 at 18:37

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

Charlie Parkercharlie ParkerCharlie Parker

9,89944 Huy hiệu vàng164 Huy hiệu bạc274 Huy hiệu Đồng44 gold badges164 silver badges274 bronze badges

Khi xử lý danh sách Python thông thường,

import random
random.shuffle(array)
4 sẽ thực hiện công việc giống như câu trả lời trước đó cho thấy.

Nhưng khi nói đến ____ 15 (____ 16),

import random
random.shuffle(array)
2 dường như phá vỡ bản gốc
import random
random.shuffle(array)
5. Đây là một ví dụ:

import random
import numpy as np
import numpy.random

a = np.array([1,2,3,4,5,6])
a.shape = (3,2)
print a
random.shuffle(a) # a will definitely be destroyed
print a

Chỉ sử dụng:

import random
random.shuffle(array)
9

Giống như

import random
random.shuffle(array)
2,
from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
1 xáo trộn mảng tại chỗ.

A B C D

9.74815 Huy hiệu vàng49 Huy hiệu bạc81 Huy hiệu đồng15 gold badges49 silver badges81 bronze badges

Đã trả lời ngày 28 tháng 10 năm 2013 lúc 9:23Oct 28, 2013 at 9:23

Shuai Zhangshuai ZhangShuai Zhang

1.9613 huy hiệu vàng21 Huy hiệu bạc23 Huy hiệu đồng3 gold badges21 silver badges23 bronze badges

2

Bạn có thể sắp xếp mảng của mình bằng khóa ngẫu nhiên

sorted(array, key = lambda x: random.random())

Chìa khóa chỉ được đọc một lần để so sánh mục trong khi sắp xếp vẫn hiệu quả.

Nhưng trông giống như

from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
2 sẽ nhanh hơn vì nó được viết bằng C

đây là o (log (n)) btw

Đã trả lời ngày 21 tháng 9 năm 2018 lúc 18:37Sep 21, 2018 at 18:37

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

JamesjamesJames

Huy hiệu vàng 13K557 Huy hiệu bạc81 Huy hiệu đồng5 gold badges57 silver badges81 bronze badges

4

Ngoài các câu trả lời trước đó, tôi muốn giới thiệu một chức năng khác.

from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
3 cũng như
import random
random.shuffle(array)
2 thực hiện xáo trộn tại chỗ. Tuy nhiên, nếu bạn muốn trả về một mảng xáo trộn
from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
5 là chức năng sử dụng.

Đã trả lời ngày 18 tháng 11 năm 2016 lúc 9:55Nov 18, 2016 at 9:55

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

SabersaberSaber

1942 Huy hiệu bạc8 Huy hiệu đồng2 silver badges8 bronze badges

Tôi không biết tôi đã sử dụng

import random
random.shuffle(array)
4 nhưng nó trả về 'không' cho tôi, vì vậy tôi đã viết điều này, có thể hữu ích cho ai đó

def shuffle(arr):
    for n in range(len(arr) - 1):
        rnd = random.randint(0, (len(arr) - 1))
        val1 = arr[rnd]
        val2 = arr[rnd - 1]

        arr[rnd - 1] = val1
        arr[rnd] = val2

    return arr

Đã trả lời ngày 17 tháng 1 năm 2017 lúc 11:09Jan 17, 2017 at 11:09

JeevajeevaJeeva

1.7372 huy hiệu vàng14 Huy hiệu bạc19 Huy hiệu đồng2 gold badges14 silver badges19 bronze badges

1

import random
random.shuffle(array)
0

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

MBT

Huy hiệu vàng 19.2K1818 gold badges77 silver badges100 bronze badges

Đã trả lời ngày 14 tháng 11 năm 2018 lúc 15:41Nov 14, 2018 at 15:41

Xin lưu ý rằng

import random
random.shuffle(array)
4 không nên được sử dụng trên các mảng đa chiều vì nó gây ra sự lặp lại.

Hãy tưởng tượng bạn muốn xáo trộn một mảng dọc theo chiều đầu tiên của nó, chúng ta có thể tạo ví dụ thử nghiệm sau,

import random
random.shuffle(array)
1

Vì vậy, dọc theo trục đầu tiên, phần tử thứ i tương ứng với ma trận 2x3 trong đó tất cả các phần tử bằng i.

Nếu chúng ta sử dụng hàm xáo trộn chính xác cho các mảng đa chiều, tức là

from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
8, mảng sẽ được xáo trộn dọc theo trục đầu tiên như mong muốn. Tuy nhiên, sử dụng
from sklearn.utils import shuffle
X=[1,2,3]
y = ['one', 'two', 'three']
X, y = shuffle(X, y, random_state=0)
print(X)
print(y)
9 sẽ gây ra sự lặp lại. Bạn có thể kiểm tra điều này bằng cách chạy
[2, 1, 3]
['two', 'one', 'three']
0 sau khi xáo trộn cung cấp cho bạn 10 (như mong đợi) với
[2, 1, 3]
['two', 'one', 'three']
1 nhưng chỉ khoảng 5 khi sử dụng
import random
random.shuffle(array)
4.

Đã trả lời ngày 21 tháng 2 năm 2020 lúc 14:01Feb 21, 2020 at 14:01

Hướng dẫn how do i shuffle an array of data in python? - làm cách nào để xáo trộn một mảng dữ liệu trong python?

Wise Cloudwise CloudWise Cloud

4014 Huy hiệu bạc5 Huy hiệu Đồng4 silver badges5 bronze badges

Làm thế nào để bạn xáo trộn các giá trị trong một mảng?

Mảng xáo trộn bằng cách sử dụng lớp ngẫu nhiên, chúng ta có thể lặp lại thông qua các phần tử mảng trong một vòng lặp. Sau đó, chúng tôi sử dụng lớp ngẫu nhiên để tạo số chỉ mục ngẫu nhiên. Sau đó hoán đổi phần tử chỉ mục hiện tại với phần tử chỉ mục được tạo ngẫu nhiên. Ở cuối vòng lặp, chúng ta sẽ có một mảng bị xáo trộn ngẫu nhiên.iterate through the array elements in a for loop. Then, we use the Random class to generate a random index number. Then swap the current index element with the randomly generated index element. At the end of the for loop, we will have a randomly shuffled array.

Làm thế nào để bạn xáo trộn dữ liệu trong Python?

Một trong những cách dễ nhất để xáo trộn một khung dữ liệu gấu trúc là sử dụng phương pháp mẫu Pandas.DF.Phương pháp mẫu cho phép bạn lấy mẫu một số hàng trong khung dữ liệu gấu trúc theo thứ tự ngẫu nhiên.Bởi vì điều này, chúng tôi chỉ cần chỉ định rằng chúng tôi muốn trả về toàn bộ DataFrame của Pandas, theo thứ tự ngẫu nhiên.use the Pandas sample method. The df. sample method allows you to sample a number of rows in a Pandas Dataframe in a random order. Because of this, we can simply specify that we want to return the entire Pandas Dataframe, in a random order.

Làm cách nào để xáo trộn thứ tự của một danh sách trong Python?

Phương thức Python Random Shuffle () Phương thức Shuffle () có một chuỗi, như một danh sách và tổ chức lại thứ tự của các mục.Lưu ý: Phương pháp này thay đổi danh sách ban đầu, nó không trả về một danh sách mới. The shuffle() method takes a sequence, like a list, and reorganize the order of the items. Note: This method changes the original list, it does not return a new list.

Làm thế nào để tôi xáo trộn một mảng trong numpy?

Với sự trợ giúp của phương thức numpy.random.shuffle (), chúng ta có thể nhận được định vị ngẫu nhiên của các giá trị số nguyên khác nhau trong mảng numpy hoặc chúng ta có thể nói rằng tất cả các giá trị trong một mảng sẽ bị xáo trộn ngẫu nhiên.Trả lại: Trả lại mảng numpy được cải tổ.numpy. random. shuffle() method, we can get the random positioning of different integer values in the numpy array or we can say that all the values in an array will be shuffled randomly. Return : Return the reshuffled numpy array.