Hướng dẫn how do you extract an element from an array in python? - làm thế nào để bạn trích xuất một phần tử từ một mảng trong python?

Tôi có một mảng 1D 8000 phần tử.

Tôi muốn có được hai mảng sau:

  1. test chứa phần tử với chỉ số từ [1995:1999], [3995:3999], [5999:5999],

    train = [X[i] for i, _ in enumerate[X] if i not in idx]
    
    0.

  2. train = [X[i] for i, _ in enumerate[X] if i not in idx]
    
    1 nên chứa mọi thứ khác.

Làm thế nào tôi nên làm điều đó?

idx = [1995,1996,1997,1998, 1999, 3995, 3996, 3997,3998, 3999, 5995, 5996, 5997, 5998, 5999, 7995, 7996, 7997, 7998, 7999]
test = [X[i] for i in idx]

train = [X[i] for i **not** in idx]

Khi được hỏi ngày 22 tháng 5 năm 2017 lúc 2:56May 22, 2017 at 2:56

4

Dựa trên ví dụ của bạn, một cách giải quyết đơn giản sẽ là thế này:

train = [X[i] for i, _ in enumerate[X] if i not in idx]

Đã trả lời ngày 22 tháng 5 năm 2017 lúc 3:10May 22, 2017 at 3:10

Arya McCarthyarya McCarthyArya McCarthy

8.2333 huy hiệu vàng31 Huy hiệu bạc54 Huy hiệu đồng3 gold badges31 silver badges54 bronze badges

Tôi có vẻ như bạn đang tìm kiếm

train = [X[i] for i, _ in enumerate[X] if i not in idx]
2, đây là một ví dụ đơn giản để bạn bắt đầu:

In [18]: import numpy as np

In [19]: a = np.array[[[0,3],[1,2],[2,3],[3,2],[4,5],[5,1]]]

In [20]: a[np.where[[a[:, 0] > 1] & [a[:, 0] < 5]][0]]
Out[20]: 
array[[[2, 3],
       [3, 2],
       [4, 5]]]

In [21]: a[np.where[~[[a[:, 0] > 1] & [a[:, 0] < 5]]][0]]
Out[21]: 
array[[[0, 3],
       [1, 2],
       [5, 1]]]

Phần tử đầu tiên trong hàng có thể là chỉ mục của bạn và thứ hai giá trị của bạn.

train = [X[i] for i, _ in enumerate[X] if i not in idx]
2 Kiểm tra xem điều kiện là
train = [X[i] for i, _ in enumerate[X] if i not in idx]
4 hay
train = [X[i] for i, _ in enumerate[X] if i not in idx]
5 và trả về một nhị phân
train = [X[i] for i, _ in enumerate[X] if i not in idx]
6 [thực sự là tuple của mảng], một khi chúng ta có mảng nhị phân, chúng ta có thể lập chỉ mục mảng gốc dựa trên đó.

Đã trả lời ngày 22 tháng 5 năm 2017 lúc 3:12May 22, 2017 at 3:12

AkavallakavallAkavall

78.8K48 Huy hiệu vàng200 Huy hiệu bạc244 Huy hiệu đồng48 gold badges200 silver badges244 bronze badges

Nếu bạn muốn, bạn có thể sử dụng mặt nạ

mask = np.ones[len[X], dtype=bool]
mask[idx] = False
train = X[mask]
test = X[idx]

# you can also use this for test
test = X[np.logical_not[mask]]

Đã trả lời ngày 22 tháng 5 năm 2017 lúc 3:20May 22, 2017 at 3:20

GergesgergesGerges

5.9892 Huy hiệu vàng21 Huy hiệu bạc38 Huy hiệu đồng2 gold badges21 silver badges38 bronze badges

1

Khi xây dựng

train = [X[i] for i, _ in enumerate[X] if i not in idx]
1, bạn cần lặp lại tất cả dữ liệu nguồn của mình.

Sử dụng

train = [X[i] for i, _ in enumerate[X] if i not in idx]
8 sẽ làm cho mọi thứ trở nên dễ dàng:

>>> data = list[range[8000]]
>>> train, test = [], []
>>> for i, value in enumerate[data]:
...     if 1995 

Bài Viết Liên Quan

Chủ Đề