# 주요 클래스

## DatasetInfo[[datasets.DatasetInfo]]

#### datasets.DatasetInfo[[datasets.DatasetInfo]]

```python
datasets.DatasetInfo(description: str = <factory>, citation: str = <factory>, homepage: str = <factory>, license: str = <factory>, features: typing.Optional[datasets.features.features.Features] = None, post_processed: typing.Optional[datasets.info.PostProcessedInfo] = None, supervised_keys: typing.Optional[datasets.info.SupervisedKeysData] = None, builder_name: typing.Optional[str] = None, dataset_name: typing.Optional[str] = None, config_name: typing.Optional[str] = None, version: typing.Union[str, datasets.utils.version.Version, NoneType] = None, splits: typing.Optional[datasets.splits.SplitDict] = None, download_checksums: typing.Optional[dict] = None, download_size: typing.Optional[int] = None, post_processing_size: typing.Optional[int] = None, dataset_size: typing.Optional[int] = None, size_in_bytes: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/info.py#L92)

**매개변수:**

description (`str`) : 데이터셋에 대한 설명.

citation (`str`) : 데이터셋의 BibTeX 인용문.

homepage (`str`) : 데이터셋 공식 홈페이지의 URL입니다.

license (`str`) : 데이터셋의 라이선스입니다. 라이선스 이름이거나 라이선스 조항을 포함하는 문단이 될 수 있습니다.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : 데이터셋의 열 유형을 지정하는 데 사용되는 features입니다.

post_processed (`PostProcessedInfo`, *선택 사항*) : 비추천. 데이터셋의 후처리와 관련된 리소스에 대한 정보입니다. 예를 들어, 인덱스에 대한 정보를 포함할 수 있습니다.

supervised_keys (`SupervisedKeysData`, *선택*) : 데이터셋에 해당되는 경우, 지도 학습을 위한 입력 특징과 라벨을 지정합니다. (TFDS에서 이관된 레거시 항목)

builder_name (`str`, *선택 사항*) : 데이터셋을 생성하는 데 사용되는 `GeneratorBasedBuilder` 하위 클래스의 이름입니다. 또한 데이터셋 빌더 클래스 이름의 snake_case 버전이기도 합니다.

config_name (`str`, *선택 사항*) : [BuilderConfig](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.BuilderConfig)에서 파생된 구성의 이름입니다.

version (`str` 또는 [Version](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.Version), *선택 사항*) : 데이터셋의 버전입니다.

splits (`dict`, *선택 사항*) : split 이름과 메타데이터 간의 매핑입니다.

download_checksums (`dict`, *선택 사항*) : 데이터셋의 체크섬을 다운로드할 URL과 해당 메타데이터 간의 매핑입니다.

download_size (`int`, *선택 사항*) : 데이터셋 생성을 위해 다운로드할 파일의 크기(바이트 단위).

post_processing_size (`int`, *선택 사항*) : 비추천. 후처리(있는 경우) 후 데이터셋의 바이트 단위 크기.

dataset_size (`int`, *선택 사항*) : 모든 split에 대한 Arrow 테이블의 바이트 단위 합산 크기.

size_in_bytes (`int`, *선택 사항*) : 데이터셋과 관련된 모든 파일(다운로드된 파일 + Arrow 파일)의 바이트 단위 합계 크기

- ****config_kwargs** (추가 키워드 인자) : [BuilderConfig](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.BuilderConfig)에 전달되고 [DatasetBuilder](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.DatasetBuilder)에서 사용되는 키워드 인자입니다.

데이터셋에 대한 정보.

`DatasetInfo`는 데이터셋의 이름, 버전, 특징 등을 문서화합니다. 전체 목록은 생성자 인수와 속성을 참조하세요.

생성 시 모든 필드가 알려진 것은 아니며, 나중에 업데이트될 수 있습니다.

#### from_directory[[datasets.DatasetInfo.from_directory]]

```python
from_directory(dataset_info_dir: str, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/info.py#L247)

**매개변수:**

dataset_info_dir (`str`) : 메타데이터 파일이 포함된 디렉터리입니다. 이는 특정 데이터셋 버전의 루트 디렉터리여야 합니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

`dataset_info_dir`의 JSON 파일에서 [DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo)를 생성합니다.

이 함수는 [DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo)의 동적으로 생성된 모든 필드(num_examples, hash, 생성 시각,...)를 업데이트합니다.

이 작업은 이전 메타데이터를 모두 덮어씁니다.

예:

```py
>>> from datasets import DatasetInfo
>>> ds_info = DatasetInfo.from_directory("/path/to/directory/")
```

#### write_to_directory[[datasets.DatasetInfo.write_to_directory]]

```python
write_to_directory(dataset_info_dir, pretty_print = False, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/info.py#L186)

**매개변수:**

dataset_info_dir (`str`) : 대상 디렉터리.

pretty_print (`bool`, 기본값은 `False`) : `True`인 경우, JSON은 들여쓰기 수준 4로 포맷팅되어 출력됩니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

`DatasetInfo`와 라이선스(있는 경우)를 JSON 파일로 `dataset_info_dir`에 작성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.info.write_to_directory("/path/to/directory/")
```

## 데이터셋[[datasets.Dataset]]

기본 클래스 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)은 Apache Arrow 테이블에 기반한 Dataset을 구현합니다.

#### datasets.Dataset[[datasets.Dataset]]

```python
datasets.Dataset(arrow_table: Table, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, indices_table: typing.Optional[datasets.table.Table] = None, fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L709)

Arrow 테이블에 기반한 Dataset입니다.

#### add_column[[datasets.Dataset.add_column]]

```python
add_column(name: str, column: typing.Union[list, numpy.ndarray], new_fingerprint: typing.Optional[str] = None, feature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure, NoneType] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6284)

**매개변수:**

name (`str`) : 컬럼 이름.

column (`list` 또는 `np.array`) : 추가할 열 데이터.

feature (`FeatureType` 또는 `None`, 기본값 `None`) : 컬럼 데이터 유형.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

Dataset에 열을 추가합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> more_text = ds["text"]
>>> ds = ds.add_column(name="text_2", column=more_text)
>>> ds
Dataset({
    features: ['text', 'label', 'text_2'],
    num_rows: 1066
})
```

#### add_item[[datasets.Dataset.add_item]]

```python
add_item(item: dict, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6546)

**매개변수:**

item (`dict`) : 추가할 항목 데이터.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

Dataset에 항목을 추가합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> new_review = {'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}
>>> ds = ds.add_item(new_review)
>>> ds[-1]
{'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}
```

#### from_file[[datasets.Dataset.from_file]]

```python
from_file(filename: str, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, indices_filename: typing.Optional[str] = None, in_memory: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L792)

**매개변수:**

filename (`str`) : 데이터셋의 파일 이름.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

indices_filename (`str`, *선택 사항*) : 인덱스의 파일 이름.

in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

filename에 있는 Arrow 테이블을 기반으로 Dataset을 초기화합니다.

#### from_buffer[[datasets.Dataset.from_buffer]]

```python
from_buffer(buffer: Buffer, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, indices_buffer: typing.Optional[pyarrow.lib.Buffer] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L832)

**매개변수:**

buffer (`pyarrow.Buffer`) : Arrow 버퍼.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

indices_buffer (`pyarrow.Buffer`, *선택 사항*) : 인덱스 Arrow 버퍼.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

Arrow 버퍼 기반의 Dataset을 인스턴스화합니다.

#### from_pandas[[datasets.Dataset.from_pandas]]

```python
from_pandas(df: DataFrame, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, preserve_index: typing.Optional[bool] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L864)

**매개변수:**

df (`pandas.DataFrame`) : 데이터셋을 포함하는 데이터프레임.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

preserve_index (`bool`, *선택 사항*) : 인덱스를 결과 Dataset의 추가 열로 저장할지 여부입니다. 기본값인 `None`은 `RangeIndex`를 제외하고 인덱스를 열로 저장하며, `RangeIndex`는 메타데이터로만 저장됩니다. 인덱스를 반드시 열로 저장하려면 `preserve_index=True`를 사용하세요.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

`pandas.DataFrame`를 `pyarrow.Table`로 변환하여 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

결과 Arrow Table의 열 유형은 DataFrame의 `pandas.Series` dtype에서 추론됩니다. object가 아닌 Series의 경우, NumPy dtype이 해당 Arrow 유형으로 변환됩니다. `object`의 경우, 이 Series에 포함된 Python 객체를 살펴서 데이터 유형을 추측해야 합니다.

`object` dtype의 Series는 항상 의미 있는 Arrow 타입으로 이어질 만큼 충분한 정보를 담고 있지 않습니다. DataFrame의 길이가 0이거나 Series에 `None/nan` 객체만 포함된 경우와 같이 타입을 추론할 수 없는 경우, 타입은 `null`로 설정됩니다. 이 동작은 명시적인 features를 구성하여 이 함수에 전달함으로써 방지할 수 있습니다.

Important: a dataset created with from_pandas() lives in memory and therefore doesn't have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

```py
>>> ds = Dataset.from_pandas(df)
```

#### from_dict[[datasets.Dataset.from_dict]]

```python
from_dict(mapping: dict, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, on_mixed_types: typing.Optional[typing.Literal['use_json']] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L982)

**매개변수:**

mapping (`Mapping`) : 문자열에서 배열 또는 Python 리스트로의 매핑.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

on_mixed_types (`Literal["use_json"]`, *선택 사항*, 기본값 `None`) : "use_json"인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드, 즉 혼합 타입 필드에 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다. 이를 통해 문자열/정수/실수 혼합 리스트나 임의의 값 타입을 가진 딕셔너리를 로드할 수 있습니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

`dict`를 `pyarrow.Table`로 변환하여 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

Important: a dataset created with from_dict() lives in memory and therefore doesn't have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

각 열에 하나의 리스트를 포함하는 사전에서 Dataset을 가져오기:

```py
>>> ds = Dataset.from_dict({"text": ["hello there !", "general kenobi !"]})
```

features를 전달하여 컬럼 유형을 설정합니다. 이미지 데이터셋의 경우:

```py
>>> features = Features({"image": Image()})
>>> ds = Dataset.from_dict({"image": ["path/to/image.png"]}, features=features)
```

Datasets는 컬럼형 포맷인 Arrow를 기반으로 하므로, 모든 예시가 동일한 타입과 서브타입을 가지며, 사전은 동일한 키와 값 타입을 가져야 한다고 가정합니다. 필드의 타입이 일치하지 않으면 Datasets를 로드할 때 오류가 발생하며, 사전에서 누락된 필드는 None으로 채워져 모든 사전이 동일한 키와 값 타입을 갖도록 합니다.

이 문제를 피하고 오류 없이 혼합된 유형을 허용하려면 `on_mixed_types="use_json"`을 사용하거나 [Json](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.Json) 유형으로 `features=`를 지정할 수 있습니다:

```py
>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]})
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]
```

임의의 키와 값을 가진 딕셔너리 목록에서도 누락된 필드를 None으로 채우는 것을 방지하기 위해 유용합니다:

```py
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]})
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK
```

도구 호출 데이터가 포함된 또 다른 예시:

```py
>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_dict({"messages": [messages]}, on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}
```

#### from_list[[datasets.Dataset.from_list]]

```python
from_list(mapping: list, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, on_mixed_types: typing.Optional[typing.Literal['use_json']] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1148)

**매개변수:**

mapping (`List[dict]`) : 문자열에서 행 값으로의 매핑 목록.

features (`Features`, 선택 사항): Dataset의 features입니다.

info (`DatasetInfo`, 선택 사항) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, 선택 사항) : 데이터셋 분할의 이름.

on_mixed_types (`Literal["use_json"]`, *선택 사항*, 기본값 `None`) : "use_json"인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드, 즉 혼합 타입 필드에 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다. 이를 통해 문자열/정수/실수 혼합 리스트나 임의의 값 타입을 가진 딕셔너리를 로드할 수 있습니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

dict 목록을 `pyarrow.Table`로 변환하여 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

features에 전달된 값과 관계없이, 첫 번째 항목의 키가 데이터셋 열을 결정하는 데 사용됩니다.

Important: a dataset created with from_list() lives in memory and therefore doesn't have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

예제가 포함된 리스트에서 Dataset을 가져오기:

```py
>>> ds = Dataset.from_list([{"text": "hello there !"}, {"text": "general kenobi !"}]})
```

features를 전달하여 컬럼 유형을 설정합니다. 이미지 데이터셋의 경우:

```py
>>> features = Features({"image": Image()})
>>> ds = Dataset.from_list([{"image": "path/to/image.png"}], features=features)
```

Datasets는 컬럼형 포맷인 Arrow를 기반으로 하므로, 모든 예시가 동일한 타입과 서브타입을 가지며, 사전은 동일한 키와 값 타입을 가져야 한다고 가정합니다. 필드의 타입이 일치하지 않으면 Datasets를 로드할 때 오류가 발생하며, 사전에서 누락된 필드는 None으로 채워져 모든 사전이 동일한 키와 값 타입을 갖도록 합니다.

이 문제를 피하고 오류 없이 혼합된 유형을 허용하려면 `on_mixed_types="use_json"`을 사용하거나 [Json](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.Json) 유형으로 `features=`를 지정할 수 있습니다:

```py
>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}])
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]
```

임의의 키와 값을 가진 딕셔너리 목록에서도 누락된 필드를 None으로 채우는 것을 방지하기 위해 유용합니다:

```py
>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}])
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK
```

도구 호출 데이터가 포함된 또 다른 예시:

```py
>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_list([{"messages": messages}], on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}
```

#### from_generator[[datasets.Dataset.from_generator]]

```python
from_generator(generator: typing.Callable, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, gen_kwargs: typing.Optional[dict] = None, num_proc: typing.Optional[int] = None, split: NamedSplit = NamedSplit('train'), fingerprint: typing.Optional[str] = None, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1337)

**매개변수:**

generator ( --`Callable`): 예시를 `yields`하는 생성기 함수.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

gen_kwargs(`dict`, *선택 사항*) : `generator` 호출 가능 객체에 전달할 키워드 인수입니다. `gen_kwargs`에 샤드 목록을 전달하고 `num_proc`를 1보다 크게 설정하여 샤드화된 데이터셋을 정의할 수 있습니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 로컬에서 데이터셋을 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다. `num_proc`가 1보다 크면 `gen_kwargs`의 모든 리스트 값은 동일한 길이를 가져야 합니다. 이러한 값은 생성기 호출 사이에 분할됩니다. 샤드 수는 `gen_kwargs`의 가장 짧은 리스트와 `num_proc` 중 더 작은 값이 됩니다.

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), 기본값은 `Split.TRAIN`) : 데이터셋에 할당할 분할 이름.

fingerprint (`str`, *선택 사항*) : dataset ID를 생성하는 데 사용되는 Fingerprint입니다. 기본적으로 `fingerprint`는 generator 함수와 모든 args를 해시하여 생성되며, AI 모델과 같은 대형 객체를 사용하는 경우 느릴 수 있습니다.

- ****kwargs** (추가 키워드 인자) : `GeneratorConfig`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

생성기에서 Dataset을 생성합니다.

generator에서 데이터를 로드하고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = Dataset.from_generator(gen)
```

```py
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = Dataset.from_generator(gen, gen_kwargs={"shards": shards})
```

#### data[[datasets.Dataset.data]]

```python
data()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2110)

데이터셋을 뒷받침하는 Apache Arrow 테이블.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.data
MemoryMappedTable
text: string
label: int64
----
text: [["compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .","the soundtrack alone is worth the price of admission .","rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .","beneath the film's obvious determination to shock at any cost lies considerable skill and determination , backed by sheer nerve .","bielinsky is a filmmaker of impressive talent .","so beautifully acted and directed , it's clear that washington most certainly has a new career ahead of him if he so chooses .","a visual spectacle full of stunning images and effects .","a gentle and engrossing character study .","it's enough to watch huppert scheming , with her small , intelligent eyes as steady as any noir villain , and to enjoy the perfectly pitched web of tension that chabrol spins .","an engrossing portrait of uncompromising artists trying to create something original against the backdrop of a corporate music industry that only seems to care about the bottom line .",...,"ultimately , jane learns her place as a girl , softens up and loses some of the intensity that made her an interesting character to begin with .","ah-nuld's action hero days might be over .","it's clear why deuces wild , which was shot two years ago , has been gathering dust on mgm's shelf .","feels like nothing quite so much as a middle-aged moviemaker's attempt to surround himself with beautiful , half-naked women .","when the precise nature of matthew's predicament finally comes into sharp focus , the revelation fails to justify the build-up .","this picture is murder by numbers , and as easy to be bored by as your abc's , despite a few whopping shootouts .","hilarious musical comedy though stymied by accents thick as mud .","if you are into splatter movies , then you will probably have a reasonably good time with the salton sea .","a dull , simple-minded and stereotypical tale of drugs , death and mind-numbing indifference on the inner-city streets .","the feature-length stretch . . . strains the show's concept ."]]
label: [[1,1,1,1,1,1,1,1,1,1,...,0,0,0,0,0,0,0,0,0,0]]
```

#### cache_files[[datasets.Dataset.cache_files]]

```python
cache_files()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2130)

데이터셋을 뒷받침하는 Apache Arrow 테이블을 포함하는 캐시 파일.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cache_files
[{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]
```

#### num_columns[[datasets.Dataset.num_columns]]

```python
num_columns()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2148)

데이터셋의 열 수.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_columns
2
```

#### num_rows[[datasets.Dataset.num_rows]]

```python
num_rows()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2163)

데이터셋의 행 수([Dataset.__len__()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.__len__)와 동일).

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_rows
1066
```

#### column_names[[datasets.Dataset.column_names]]

```python
column_names()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2180)

데이터셋의 열 이름.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.column_names
['text', 'label']
```

#### shape[[datasets.Dataset.shape]]

```python
shape()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2195)

데이터셋의 형태(열 수, 행 수).

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.shape
(1066, 2)
```

#### unique[[datasets.Dataset.unique]]

```python
unique(column: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2212)

**매개변수:**

column (`str`) : 컬럼 이름 ([column_names](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.column_names)로 모든 컬럼 이름을 나열합니다).

**반환값:** `list`

주어진 열의 고유 요소 목록.

열의 고유 요소 목록을 반환합니다.

이것은 저수준 백엔드에서 구현되어 있어 매우 빠릅니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.unique('label')
[1, 0]
```

#### flatten[[datasets.Dataset.flatten]]

```python
flatten(new_fingerprint: typing.Optional[str] = None, max_depth = 16)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2318)

**매개변수:**

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

열이 평탄화(flattened)된 데이터셋의 복사본입니다.

Flatten 테이블을 평탄화합니다. struct 타입인 각 열은 struct 필드별로 하나의 열로 평탄화됩니다. 다른 열은 변경되지 않습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers': {'text': List(Value('string')),
 'answer_start': List(Value('int32'))}}
>>> ds = ds.flatten()
>>> ds
Dataset({
    features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
    num_rows: 87599
})
```

#### cast[[datasets.Dataset.cast]]

```python
cast(features: Features, batch_size: typing.Optional[int] = 1000, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, num_proc: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2365)

**매개변수:**

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)) : 데이터셋을 변환할 새로운 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. `str` <-> `ClassLabel`와 같이 단순하지 않은 변환의 경우, [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.map)을 사용하여 Dataset을 업데이트해야 합니다.

batch_size (`int`, 기본값 `1000`) : cast에 제공되는 배치당 예시 수입니다. `batch_size <= 0` 또는 `batch_size == None`인 경우 전체 데이터셋을 단일 배치로 cast에 제공합니다.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

load_from_cache_file (`bool`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

cache_file_name (`str`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.map) 실행 중 임시 메모리 사용량이 줄어듭니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 멀티프로세싱에 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}
```

#### cast_column[[datasets.Dataset.cast_column]]

```python
cast_column(column: str, feature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure], new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2449)

**매개변수:**

column (`str`) : 컬럼 이름.

feature (`FeatureType`) : 대상 기능.

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}
```

#### remove_columns[[datasets.Dataset.remove_columns]]

```python
remove_columns(column_names: typing.Union[str, list[str]], new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2492)

**매개변수:**

column_names (`Union[str, List[str]]`) : 제거할 열의 이름.

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연결된 features를 제거합니다.

`remove_columns`을 사용하여 [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.map)으로 컬럼을 제거할 수도 있지만, 현재 메서드는 나머지 컬럼의 데이터를 복사하지 않으므로 더 빠릅니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.remove_columns('label')
Dataset({
    features: ['text'],
    num_rows: 1066
})
>>> ds = ds.remove_columns(column_names=ds.column_names) # Removing all the columns returns an empty dataset with the `num_rows` property set to 0
Dataset({
    features: [],
    num_rows: 0
})
```

#### rename_column[[datasets.Dataset.rename_column]]

```python
rename_column(original_column_name: str, new_column_name: str, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2547)

**매개변수:**

original_column_name (`str`) : 이름이 변경될 열의 이름.

new_column_name (`str`) : 열의 새 이름.

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

열 이름이 변경된 데이터셋의 복사본.

dataset의 컬럼 이름을 변경하고, 원래 컬럼에 연결된 features를 새 컬럼 이름 아래로 이동합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_column('label', 'label_new')
Dataset({
    features: ['text', 'label_new'],
    num_rows: 1066
})
```

#### rename_columns[[datasets.Dataset.rename_columns]]

```python
rename_columns(column_mapping: dict, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2613)

**매개변수:**

column_mapping (`Dict[str, str]`) : 컬럼을 새 이름으로 변경할 매핑

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

열 이름이 변경된 데이터셋의 복사본

데이터셋의 여러 열 이름을 변경하고, 원래 열에 연결된 기능을 새 열 이름 아래로 이동합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
Dataset({
    features: ['text_new', 'label_new'],
    num_rows: 1066
})
```

#### select_columns[[datasets.Dataset.select_columns]]

```python
select_columns(column_names: typing.Union[str, list[str]], new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2680)

**매개변수:**

column_names (`Union[str, List[str]]`) : 유지할 열의 이름.

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

선택된 열로만 구성된 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 열과 해당 열에 연결된 기능을 선택합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select_columns(['text'])
>>> ds
Dataset({
    features: ['text'],
    num_rows: 1066
})
```

#### class_encode_column[[datasets.Dataset.class_encode_column]]

```python
class_encode_column(column: str, include_nulls: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2243)

**매개변수:**

column (`str`) : 캐스팅할 열의 이름 ([column_names](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.column_names)로 모든 열 이름을 나열할 수 있습니다)

include_nulls (`bool`, 기본값 `False`) : 클래스 라벨에 null 값을 포함할지 여부입니다. `True`인 경우, null 값은 `"None"` 클래스 라벨로 인코딩됩니다.

주어진 컬럼을 [ClassLabel](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.ClassLabel)으로 캐스팅하고 테이블을 업데이트합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq", split="validation")
>>> ds.features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column('answer')
>>> ds.features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}
```

#### __len__[[datasets.Dataset.__len__]]

```python
__len__()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2736)

데이터셋의 행 수.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.__len__
<bound method Dataset.__len__ of Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})>
```

#### __iter__[[datasets.Dataset.__iter__]]

```python
__iter__()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2753)

예제를 반복합니다.

[Dataset.set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)로 포맷이 설정된 경우, 선택된 포맷으로 행이 반환됩니다.

#### iter[[datasets.Dataset.iter]]

```python
iter(batch_size: int, drop_last_batch: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2782)

**매개변수:**

batch_size (`int`) : yield할 각 배치의 크기.

drop_last_batch (`bool`, 기본값 *False*) : batch_size보다 작은 마지막 배치의 드롭 여부를 결정합니다

크기 *batch_size*의 배치들을 순회합니다.

[*~datasets.Dataset.set_format*]로 포맷이 설정된 경우, 선택된 포맷으로 행이 반환됩니다.

#### formatted_as[[datasets.Dataset.formatted_as]]

```python
formatted_as(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2826)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__``이 Python 객체를 반환함을 의미합니다(기본값).

columns (`List[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`with` 문장에서 사용됩니다. `__getitem__` 반환 형식(타입 및 열)을 설정합니다.

#### set_format[[datasets.Dataset.set_format]]

```python
set_format(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2858)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__`가 python 객체를 반환함을 의미합니다(기본값).

columns (`List[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`__getitem__` 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. `type`(예: "numpy")은 `__getitem__`를 사용할 때 배치 포맷팅에 사용됩니다. [set_transform()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_transform)을 사용하여 사용자 정의 변환으로 포맷팅하는 것도 가능합니다.

`set_format`를 호출한 후 [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.map)을 호출할 수 있습니다. `map`이 새로운 열을 추가할 수 있으므로, 포맷된 열 목록

업데이트됩니다. 이 경우, 데이터셋에 `map`을 적용하여 새 컬럼을 추가하면 이 컬럼은 다음과 같이 포맷됩니다:

```
new formatted columns = (all columns - previously unformatted columns)
```

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['text', 'label'])
>>> ds.format
{'type': 'numpy',
'format_kwargs': {},
'columns': ['text', 'label'],
'output_all_columns': False}
```

#### set_transform[[datasets.Dataset.set_transform]]

```python
set_transform(transform: typing.Optional[typing.Callable], columns: typing.Optional[list] = None, output_all_columns: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2966)

**매개변수:**

transform (`Callable`, *선택 사항*) : 사용자가 정의한 포맷 변환으로, [set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)로 정의된 포맷을 대체합니다. 포맷 함수는 배치(`dict` 형태)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 `__getitem__`에서 객체를 반환하기 직전에 적용됩니다.

columns (`List[str]`, *선택 사항*) : 출력에서 포맷할 열입니다. 지정된 경우, 변환의 입력 배치에는 해당 열만 포함됩니다.

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 포함할지 여부 (python 객체로 유지). True로 설정하면, 변환의 출력과 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 `__getitem__`의 반환 형식을 설정합니다. `__getitem__`이 호출될 때 배치에 온더플라이로 변환이 적용됩니다. [set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)와 마찬가지로, [reset_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.reset_format)을 사용하여 초기화할 수 있습니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
>>> def encode(batch):
...     return tokenizer(batch['text'], padding=True, truncation=True, return_tensors='pt')
>>> ds.set_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1]),
 'input_ids': tensor([  101, 29353,  2135, 15102,  1996,  9428, 20868,  2890,  8663,  6895,
         20470,  2571,  3663,  2090,  4603,  3017,  3008,  1998,  2037, 24211,
         5637,  1998, 11690,  2336,  1012,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0])}
```

#### reset_format[[datasets.Dataset.reset_format]]

```python
reset_format()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L2937)

`__getitem__` 반환 형식을 Python 객체 및 모든 컬럼으로 재설정합니다.

`self.set_format()`와 동일합니다

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds.format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
```

#### with_format[[datasets.Dataset.with_format]]

```python
with_format(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L3009)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__`가 python 객체를 반환함을 의미합니다(기본값).

columns (`List[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`__getitem__` 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. `__getitem__`를 사용할 때 배치 포맷팅에 `type`(예: "numpy")이 사용됩니다.

[with_transform()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.with_transform)를 사용하여 포맷팅에 커스텀 트랜스포메이션을 사용하는 것도 가능합니다.

[set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)과 달리, `with_format`은 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체를 반환합니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds[0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}
```

#### with_transform[[datasets.Dataset.with_transform]]

```python
with_transform(transform: typing.Optional[typing.Callable], columns: typing.Optional[list] = None, output_all_columns: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L3080)

**매개변수:**

transform (`Callable`, `optional`) : 사용자 정의 포맷 변환으로, [set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)으로 정의된 포맷을 대체합니다. 포맷 함수는 배치(`dict` 형태)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 `__getitem__`에서 객체를 반환하기 직전에 적용됩니다.

columns (`List[str]`, `optional`) : 출력에서 포맷할 열. 지정된 경우, transform의 입력 배치에는 해당 열만 포함됩니다.

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 포함할지 여부 (python 객체로 유지). `True`로 설정하면, 변환 결과와 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 `__getitem__`의 반환 형식을 설정합니다. `__getitem__`이 호출될 때 배치에 대해 이 변환이 즉시 적용됩니다.

[set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)와 마찬가지로, [reset_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.reset_format)을 사용하여 초기화할 수 있습니다.

[set_transform()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_transform)과 달리, `with_transform`은 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체를 반환합니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example["text"], padding=True, truncation=True, return_tensors='pt')
>>> ds = ds.with_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
         1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
         1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0])}
```

#### __getitem__[[datasets.Dataset.__getitem__]]

```python
__getitem__(key)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L3156)

열(문자열 이름) 또는 행(정수 인덱스, 인덱스 또는 불리언의 반복 가능 객체)을 인덱싱하는 데 사용할 수 있습니다.

#### cleanup_cache_files[[datasets.Dataset.cleanup_cache_files]]

```python
cleanup_cache_files()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L3169)

**반환값:** `int`

삭제된 파일의 수.

현재 사용 중인 캐시 파일이 있는 경우를 제외하고, 데이터셋 캐시 디렉터리 내의 모든 캐시 파일을 정리합니다.

이 명령을 실행할 때 다른 프로세스가 다른 캐시 파일을 사용 중이지 않은지 주의하세요.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cleanup_cache_files()
10
```

#### map[[datasets.Dataset.map]]

```python
map(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, with_rank: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, drop_last_batch: bool = False, remove_columns: typing.Union[str, list[str], NoneType] = None, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, features: typing.Optional[datasets.features.features.Features] = None, disable_nullable: bool = False, fn_kwargs: typing.Optional[dict] = None, num_proc: typing.Optional[int] = None, suffix_template: str = '_{rank:05d}_of_{num_proc:05d}', new_fingerprint: typing.Optional[str] = None, desc: typing.Optional[str] = None, try_original_type: typing.Optional[bool] = True, on_mixed_types: typing.Optional[typing.Literal['use_json']] = 'use_json')
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L3216)

**매개변수:**

function (`Callable`) : 다음 서명 중 하나를 가진 함수: - `batched=False`이고 `with_indices=False`이고 `with_rank=False`인 경우 `function(example: Dict[str, Any]) -> Dict[str, Any]` - `batched=False`이고 `with_indices=True`이거나 `with_rank=True`인 경우 `function(example: Dict[str, Any], *extra_args) -> Dict[str, Any]` (각각 추가 인자 하나) - `batched=True`이고 `with_indices=False`이고 `with_rank=False`인 경우 `function(batch: Dict[str, List]) -> Dict[str, List]` - `batched=True`이고 `with_indices=True`이거나 `with_rank=True`인 경우 `function(batch: Dict[str, List], *extra_args) -> Dict[str, List]` (각각 추가 인자 하나) 고급 사용법에 따라 함수는 `pyarrow.Table`을 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우 `map`은 함수를 병렬로 실행합니다. 또한 함수가 아무것도 (`None`) 반환하지 않는 경우 `map`은 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면 항등 함수 `lambda x: x`를 기본값으로 사용합니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx[, rank]): ...`여야 합니다.

with_rank (`bool`, 기본값 `False`) : `function`에 프로세스 랭크를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example[, idx], rank): ...`여야 합니다.

input_columns (`Optional[Union[str, List[str]]]`, 기본값 `None`) : `function`에 위치 인자로 전달할 열입니다. `None`인 경우, 모든 포맷된 열에 대한 `dict` 매핑이 하나의 인자로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 배치별로 제공되는 예시 수입니다. `batch_size <= 0` 또는 `batch_size == None`인 경우, 전체 데이터셋을 단일 배치로 `function`에 제공합니다.

drop_last_batch (`bool`, 기본값 `False`) : batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부.

remove_columns (`Optional[Union[str, List[str]]]`, 기본값 `None`) : 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 `function`의 출력으로 예시를 업데이트하기 전에 제거되므로, `function`이 `remove_columns`에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

cache_file_name (`str`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

features (`Optional[datasets.Features]`, 기본값 `None`) : 자동 생성된 Features 대신 특정 Features를 사용하여 캐시 파일을 저장합니다.

disable_nullable (`bool`, 기본값 `False`) : 테이블에서 null 값을 허용하지 않습니다.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 멀티프로세싱에 사용할 프로세스 수입니다. - `None` 또는 `0`인 경우 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다. - `1`보다 큰 경우, 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 `map()`에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다). suffix_template (`str`): `cache_file_name`이 지정된 경우, 각 파일의 기본 이름 끝에 이 접미사가 추가됩니다. 기본값은 `"_{rank:05d}_of_{num_proc:05d}"`입니다. 예를 들어, `cache_file_name`이 "processed.arrow"이고 `rank=1`, `num_proc=4`인 경우, 기본 접미사를 사용하면 결과 파일은 `"processed_00001_of_00004.arrow"`가 됩니다.

new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 데이터셋의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

desc (`str`, *선택 사항*, 기본값 `None`) : 예제를 매핑하는 동안 진행률 바와 함께 표시될 의미 있는 설명입니다.

try_original_type (`Optional[bool]`, 기본값 `True`) : 원본 열의 타입을 유지하려고 시도합니다 (예: int32 -> int32). 항상 새로운 타입을 추론하려면 False로 설정하세요.

on_mixed_types (`Literal["use_json"]`, *선택 사항*, 기본값 `None`) : "use_json"인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드, 즉 혼합 타입 필드에 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다. 이를 통해 문자열/정수/실수 혼합 리스트나 임의의 값 타입을 가진 딕셔너리를 로드할 수 있습니다.

map은 테이블의 모든 예제에 함수를 적용(개별 또는 배치 단위)하여 테이블을 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다.

`batched` 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

- `False`인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 `{"text": "Hello there !"}`과 같습니다.
- `True`이고 `batch_size`가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 `{"text": ["Hello there !"]}`입니다.
- `True`이고 `batch_size`가 `n > 1`인 경우, 이 함수는 `n`개의 예시로 구성된 배치(batch)를 입력으로 받아 `n`개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 `n`개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 `n`개의 예시로 구성된 배치는 `{"text": ["Hello there !"] * n}`입니다.

함수가 비동기(asynchronous)인 경우, `map`은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds[0:3]["text"]
['Review: compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'Review: the soundtrack alone is worth the price of admission .',
 'Review: rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)
```

#### 필터[[datasets.Dataset.filter]]

```python
filter(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, with_rank: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, fn_kwargs: typing.Optional[dict] = None, num_proc: typing.Optional[int] = None, suffix_template: str = '_{rank:05d}_of_{num_proc:05d}', new_fingerprint: typing.Optional[str] = None, desc: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4149)

**매개변수:**

function (`Callable`) : 다음 서명 중 하나를 가진 Callable: - `batched=False`이고 `with_indices=False`이며 `with_rank=False`인 경우 `function(example: Dict[str, Any]) -> bool` - `batched=False`이고 `with_indices=True`이거나 `with_rank=True`인 경우 `function(example: Dict[str, Any], *extra_args) -> bool` (각각 추가 인자 하나) - `batched=True`이고 `with_indices=False`이며 `with_rank=False`인 경우 `function(batch: Dict[str, List]) -> List[bool]` - `batched=True`이고 `with_indices=True`이거나 `with_rank=True`인 경우 `function(batch: Dict[str, List], *extra_args) -> List[bool]` (각각 추가 인자 하나) 함수가 비동기(asynchronous)인 경우, `filter`는 함수를 병렬로 실행합니다. 함수가 제공되지 않으면 항상 `True`를 반환하는 함수 `lambda x: True`가 기본값으로 사용됩니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx[, rank]): ...`여야 합니다.

with_rank (`bool`, 기본값 `False`) : `function`에 프로세스 랭크를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example[, idx], rank): ...`여야 합니다.

input_columns (`str` 또는 `List[str]`, *선택 사항*) : `function`에 위치 인수로 전달할 열입니다. `None`인 경우, 모든 포맷된 열에 대한 `dict` 매핑이 하나의 인수로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched = True`인 경우 `function`에 전달되는 배치당 예시 수입니다. `batched = False`인 경우 `function`에 배치당 하나의 예시가 전달됩니다. `batch_size <= 0` 또는 `batch_size == None`인 경우 전체 데이터셋을 단일 배치로 `function`에 제공합니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

cache_file_name (`str`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

fn_kwargs (`dict`, *선택 사항*) : `function`에 전달할 키워드 인자.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 멀티프로세싱에 사용할 프로세스 수입니다. - `None` 또는 `0`인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다. - `1`보다 큰 경우, 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 `map()`에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).

suffix_template (`str`) : `cache_file_name`이 지정된 경우, 각 파일의 기본 이름 끝에 이 접미사가 추가됩니다. 예를 들어, `cache_file_name`이 `"processed.arrow"`이고 `rank = 1`, `num_proc = 4`인 경우, 기본 접미사(default `_{rank:05d}_of_{num_proc:05d}`)를 사용하면 생성되는 파일은 `"processed_00001_of_00004.arrow"`가 됩니다.

new_fingerprint (`str`, *선택 사항*) : 변환 후 데이터셋의 새로운 지문. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

desc (`str`, *선택 사항*, 기본값 `None`) : 예시를 필터링하는 동안 진행률 바와 함께 표시될 의미 있는 설명입니다.

filter 함수를 테이블의 모든 요소에 배치별로 적용하고, 필터 함수에 따라 예제가 포함되도록 테이블을 업데이트하여 데이터셋이 해당 예제만 포함하도록 합니다.

함수가 비동기(asynchronous)인 경우, `filter`는 최대 1,000개의 동시 호출(구성 가능)로 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.filter(lambda x: x["label"] == 1)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})
```

#### 선택[[datasets.Dataset.select]]

```python
select(indices: Iterable, keep_in_memory: bool = False, indices_cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4376)

**매개변수:**

indices (`range`, `list`, `iterable`, `ndarray` 또는 `Series`) : 인덱싱을 위한 정수 인덱스의 범위, 리스트 또는 1차원 배열. 인덱스가 연속된 범위에 해당하면 Arrow 테이블은 단순히 슬라이싱됩니다. 그러나 연속되지 않은 인덱스 리스트를 전달하면 인덱스 매핑이 생성되는데, 이는 훨씬 비효율적이지만 요청된 행으로 구성된 Arrow 테이블을 다시 생성하는 것보다는 여전히 빠릅니다.

keep_in_memory (`bool`, 기본값은 `False`) : 인덱스 매핑을 캐시 파일에 쓰는 대신 메모리에 유지합니다.

indices_cache_file_name (`str`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성된 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 데이터셋의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

인덱스의 목록/배열에 따라 선택된 행을 포함하는 새로운 데이터셋을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select(range(4))
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 4
})
```

#### sort[[datasets.Dataset.sort]]

```python
sort(column_names: typing.Union[str, collections.abc.Sequence[str]], reverse: typing.Union[bool, collections.abc.Sequence[bool]] = False, null_placement: str = 'at_end', keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, indices_cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4717)

**매개변수:**

column_names (`Union[str, Sequence[str]]`) : 정렬할 열 이름.

reverse (`Union[bool, Sequence[bool]]`, 기본값 `False`) : `True`인 경우 오름차순 대신 내림차순으로 정렬합니다. 단일 bool 값을 제공하는 경우 해당 값이 모든 열 이름의 정렬에 적용됩니다. 그렇지 않으면 column_names와 동일한 길이와 순서를 가진 bool 목록을 제공해야 합니다.

null_placement (`str`, 기본값 `at_end`) : `at_start` 또는 `first`인 경우 `None` 값을 앞에, `at_end` 또는 `last`인 경우 뒤에 배치합니다

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 쓰는 대신 정렬된 인덱스를 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : 정렬된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

indices_cache_file_name (`str`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 정렬된 인덱스를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기(write operation)의 한 번의 쓰기 작업당 행 수입니다. 값이 높을수록 캐시 파일 크기가 작아지고, 값이 낮을수록 임시 메모리 사용량이 줄어듭니다.

new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 데이터셋의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다

하나 또는 여러 열에 따라 정렬된 새로운 데이터셋을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes', split='validation')
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
```

#### shuffle[[datasets.Dataset.shuffle]]

```python
shuffle(seed: typing.Optional[int] = None, generator: typing.Optional[numpy.random._generator.Generator] = None, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, indices_cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4845)

**매개변수:**

seed (`int`, *선택 사항*) : `generator=None`인 경우 기본 BitGenerator를 초기화하는 시드입니다. `None`이면 OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. `int` 또는 `array_like[ints]`가 전달되면 SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다.

generator (`numpy.random.Generator`, *선택 사항*) : 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. `generator=None`(기본값)인 경우, `np.random.default_rng`(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.

keep_in_memory (`bool`, 기본값 `False`) : 캐시 파일에 쓰는 대신 셔플된 인덱스를 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : 셔플된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

indices_cache_file_name (`str`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 셔플된 인덱스를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 데이터셋의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

행이 섞인 새로운 Dataset을 생성합니다.

현재 shuffling은 numpy random generator를 사용합니다. 사용할 NumPy BitGenerator를 제공하거나, NumPy의 기본 random generator(PCG64)를 초기화할 seed를 지정할 수 있습니다.

Shuffling은 인덱스 목록 `[0:len(my_dataset)]`을 섞어 인덱스 매핑을 생성합니다. 그러나 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)에 인덱스 매핑이 있는 순간 속도가 10배까지 느려질 수 있습니다. 이는 인덱스 매핑을 사용하여 읽을 행 인덱스를 가져오는 추가 단계가 발생하고, 무엇보다 더 이상 연속된 데이터 청크를 읽지 않기 때문입니다. 속도를 회복하려면 인덱스 매핑을 제거하는 [Dataset.flatten_indices()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.flatten_indices)를 사용하여 디스크에 전체 데이터셋을 다시 작성해야 합니다.

데이터셋의 크기에 따라 상당한 시간이 소요될 수 있습니다:

```python
my_dataset[0]  # fast
my_dataset = my_dataset.shuffle(seed=42)
my_dataset[0]  # up to 10x slower
my_dataset = my_dataset.flatten_indices()  # rewrite the shuffled dataset on disk as contiguous chunks of data
my_dataset[0]  # fast again
```

이 경우 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)으로 전환하고, 그 빠른 근사 셔플링 방법인 [IterableDataset.shuffle()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.shuffle)을 활용하는 것을 권장합니다.

shards의 순서만 섞고 데이터셋에 shuffle 버퍼를 추가할 뿐이므로, 데이터셋의 속도가 최적 상태로 유지됩니다:

```python
my_iterable_dataset = my_dataset.to_iterable_dataset(num_shards=128)
for example in enumerate(my_iterable_dataset):  # fast
    pass

shuffled_iterable_dataset = my_iterable_dataset.shuffle(seed=42, buffer_size=100)

for example in enumerate(shuffled_iterable_dataset):  # as fast as before
    pass
```

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds['label'][:10]
[1, 0, 1, 1, 0, 0, 0, 0, 0, 0]
```

#### 건너뛰기[[datasets.Dataset.skip]]

```python
skip(n: int)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4629)

**매개변수:**

n (`int`) : 건너뛸 요소의 개수.

첫 `n`개 요소를 건너뛰는 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]
```

#### take[[datasets.Dataset.take]]

```python
take(n: int)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4691)

**매개변수:**

n (`int`) : 가져올 요소의 개수.

첫 번째 `n`개 요소만 포함된 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]
```

#### train_test_split[[datasets.Dataset.train_test_split]]

```python
train_test_split(test_size: typing.Union[float, int, NoneType] = None, train_size: typing.Union[float, int, NoneType] = None, shuffle: bool = True, stratify_by_column: typing.Optional[str] = None, seed: typing.Optional[int] = None, generator: typing.Optional[numpy.random._generator.Generator] = None, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, train_indices_cache_file_name: typing.Optional[str] = None, test_indices_cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, train_new_fingerprint: typing.Optional[str] = None, test_new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4982)

**매개변수:**

test_size (`Union[float, int, None]`, *선택*) : 테스트 분할의 크기 `float`인 경우, `0.0`과 `1.0` 사이여야 하며 데이터셋 중 테스트 분할에 포함할 비율을 나타냅니다. `int`인 경우, 테스트 샘플의 절대 개수를 나타냅니다. `None`인 경우, 값은 train size의 보수로 설정됩니다. `train_size`도 `None`인 경우, `0.25`로 설정됩니다.

train_size (`Union[float, int, None]`, *선택*) : train split의 크기 `float`인 경우, `0.0`과 `1.0` 사이여야 하며 train split에 포함할 데이터셋의 비율을 나타냅니다. `int`인 경우, train 샘플의 절대 개수를 나타냅니다. `None`인 경우, 값은 test 크기의 보수로 자동 설정됩니다.

shuffle (`bool`, *선택 사항*, 기본값 `True`) : 데이터를 분할하기 전에 셔플할지 여부.

stratify_by_column (`str`, *선택 사항*, 기본값 `None`) : 데이터의 층화 분할을 수행할 레이블의 열 이름입니다.

seed (`int`, *선택 사항*) : `generator=None`인 경우 기본 BitGenerator를 초기화하는 시드입니다. `None`이면 OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. `int` 또는 `array_like[ints]`가 전달되면 SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다.

generator (`numpy.random.Generator`, *선택 사항*) : 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. `generator=None`(기본값)인 경우, `np.random.default_rng`(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 작성하는 대신 분할 인덱스를 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : 스플릿 인덱스를 저장하는 캐시 파일을 식별할 수 있으면, 다시 계산하는 대신 해당 파일을 사용합니다.

train_cache_file_name (`str`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 학습 분할 인덱스를 저장하는 데 사용됩니다.

test_cache_file_name (`str`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 테스트 분할 인덱스를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

train_new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 학습 세트의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다

test_new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 테스트 세트의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다

두 개의 무작위 train 및 test 부분집합(`train`과 `test` `Dataset` 스플릿)을 포함하는 사전([datasets.DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict))을 반환합니다. 스플릿은 `test_size`, `train_size`, `shuffle`에 따라 데이터셋에서 생성됩니다.

이 메서드는 scikit-learn의 `train_test_split`와 유사합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.train_test_split(test_size=0.2, shuffle=True)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 852
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 214
    })
})

# set a seed
>>> ds = ds.train_test_split(test_size=0.2, seed=42)

# stratified split
>>> ds = load_dataset("stanfordnlp/imdb",split="train")
Dataset({
    features: ['text', 'label'],
    num_rows: 25000
})
>>> ds = ds.train_test_split(test_size=0.2, stratify_by_column="label")
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 20000
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 5000
    })
})
```

#### shard[[datasets.Dataset.shard]]

```python
shard(num_shards: int, index: int, contiguous: bool = True, keep_in_memory: bool = False, indices_cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5265)

**매개변수:**

num_shards (`int`) : 데이터셋을 몇 개의 샤드로 나눌지 지정합니다.

index (`int`) : 선택하고 반환할 샤드.

contiguous : (`bool`, 기본값 `True`): 샤드에 사용할 인덱스 블록을 연속적으로 선택할지 여부.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

indices_cache_file_name (`str`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 각 샤드의 인덱스를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 이는 인덱스 매핑에만 해당합니다. 캐시 파일 작성기에서 쓰기 작업당 인덱스 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

데이터셋을 `num_shards`개의 조각으로 나누고 `index`번째 샤드를 반환합니다.

이것은 결정적으로 샤딩됩니다. `dataset.shard(n, i)`는 데이터셋을 연속된 청크로 나누므로, 처리 후 쉽게 다시 연결할 수 있습니다. `len(dataset) % n == l`인 경우, 첫 번째 `l`개의 데이터셋은 길이가 `(len(dataset) // n) + 1`이고, 나머지 데이터셋은 길이가 `(len(dataset) // n)`입니다. `datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)])`는 원래와 동일한 순서를 가진 데이터셋을 반환합니다.

참고: `len(dataset)`의 요소 수보다 n이 작거나 같아야 합니다.

반면, `dataset.shard(n, i, contiguous=False)`는 인덱스가 `n = i`인 데이터셋의 모든 요소를 포함합니다.

`shuffle`와 같은 무작위화 연산자를 사용하기 전에 반드시 샤딩을 수행해야 합니다. 샤딩 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})
>>> ds = ds.shard(num_shards=2, index=0)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})
```

#### 반복[[datasets.Dataset.repeat]]

```python
repeat(num_times: int)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4659)

**매개변수:**

num_times (`int`) : 데이터셋을 반복할 횟수.

`num_times`회 반복되는 기본 데이터셋을 포함하는 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)을 생성합니다.

itertools.repeat과 마찬가지로, 한 번만 반복하면 전체 데이터셋을 반환합니다.

예:
```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
```

#### to_tf_dataset[[datasets.Dataset.to_tf_dataset]]

```python
to_tf_dataset(batch_size: typing.Optional[int] = None, columns: typing.Union[str, list[str], NoneType] = None, shuffle: bool = False, collate_fn: typing.Optional[typing.Callable] = None, drop_remainder: bool = False, collate_fn_args: typing.Optional[dict[str, typing.Any]] = None, label_cols: typing.Union[str, list[str], NoneType] = None, prefetch: bool = True, num_workers: int = 0, num_test_batches: int = 20)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L336)

**매개변수:**

batch_size (`int`, *선택 사항*) : 데이터셋에서 로드할 배치의 크기입니다. 기본값은 `None`이며, 이는 데이터셋이 배치되지 않음을 의미합니다. 반환된 데이터셋은 나중에 `tf_dataset.batch(batch_size)`를 사용하여 배치할 수 있습니다.

columns (`List[str]` 또는 `str`, *선택 사항*) : `tf.data.Dataset`에 로드할 데이터셋 컬럼입니다. `collate_fn`에 의해 생성되고 원래 데이터셋에 존재하지 않는 컬럼 이름도 사용할 수 있습니다.

shuffle(`bool`, 기본값 `False`) : 데이터셋을 로드할 때 순서를 섞습니다. 학습에는 `True`, 검증/평가에는 `False`를 권장합니다.

drop_remainder(`bool`, 기본값 `False`) : 로딩 시 마지막 불완전한 배치 제거 여부. 데이터셋이 생성하는 모든 배치의 배치 차원 길이가 동일하도록 보장합니다.

collate_fn(`Callable`, *선택 사항*) : 샘플 목록을 배치로 collate하는 함수 또는 callable 객체(예: `DataCollator`).

collate_fn_args (`Dict`, *선택 사항*) : `collate_fn`에 전달할 키워드 인수의 선택적 `dict`입니다.

label_cols (`List[str]` 또는 `str`, 기본값은 `None`) : 레이블로 로드할 Dataset 컬럼입니다. 많은 모델은 Keras에 위임하지 않고 내부적으로 손실을 계산하므로, 입력 `columns`에 레이블이 포함되어 있다면 여기에서 레이블을 전달하는 것은 선택 사항입니다.

prefetch (`bool`, 기본값 `True`) : dataloader를 별도의 스레드에서 실행하고 학습을 위한 작은 배치 버퍼를 유지할지 여부입니다. 모델이 학습하는 동안 백그라운드에서 데이터를 로드할 수 있어 성능을 향상시킵니다.

num_workers (`int`, 기본값 `0`) : 데이터셋 로딩에 사용할 워커 수.

num_test_batches (`int`, 기본값 `20`) : 데이터셋의 출력 시그니처를 추론하는 데 사용할 배치 수입니다. 이 값이 클수록 시그니처가 더 정확해지지만, 데이터셋 생성에 더 오랜 시간이 걸립니다.

**반환값:**

`tf.data.Dataset`

Create a `tf.data.Dataset` from the underlying Dataset. This `tf.data.Dataset` will load and collate batches from the Dataset, and is suitable for passing to methods like `model.fit()` or `model.predict()`. The dataset will yield `dicts` for both inputs and labels unless the `dict` would contain only a single key, in which case a raw `tf.Tensor` is yielded instead.

예:

```py
>>> ds_train = ds["train"].to_tf_dataset(
...    columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'],
...    shuffle=True,
...    batch_size=16,
...    collate_fn=data_collator,
... )
```

#### push_to_hub[[datasets.Dataset.push_to_hub]]

```python
push_to_hub(repo_id: str, config_name: str = 'default', set_default: typing.Optional[bool] = None, split: typing.Optional[str] = None, data_dir: typing.Optional[str] = None, commit_message: typing.Optional[str] = None, commit_description: typing.Optional[str] = None, private: typing.Optional[bool] = None, token: typing.Optional[str] = None, revision: typing.Optional[str] = None, create_pr: typing.Optional[bool] = False, max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[int] = None, embed_external_files: bool = True, num_proc: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6092)

**매개변수:**

repo_id (`str`) : 다음 형식의 저장소 ID: `<user>/<dataset_name>` 또는 `<org>/<dataset_name>`. 로그인한 사용자의 네임스페이스를 기본값으로 사용하는 `<dataset_name>`도 허용됩니다. 또한 버킷 내부의 위치일 수도 있으며, 예: `buckets/<user_or_org>/<bucket_name>/...`

config_name (`str`, 기본값 "default") : 데이터셋의 구성 이름(또는 부분 집합). 기본값은 "default"입니다.

set_default (`bool`, *선택 사항*) : 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 "default"라는 이름의 구성입니다.

split (`str`, *선택 사항*) : 해당 데이터셋에 부여할 스플릿의 이름입니다. 기본값은 `self.split`입니다.

data_dir (`str`, *선택 사항*) : 업로드된 데이터 파일을 포함할 디렉터리 이름. "default"와 다르면 `config_name`을 기본값으로 사용하고, 그렇지 않으면 "data"를 기본값으로 사용합니다.

commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지입니다. 기본값은 `"Upload dataset"`입니다.

commit_description (`str`, *선택 사항*) : 생성될 커밋의 설명입니다. PR이 생성되는 경우(`create_pr`가 True인 경우) PR의 설명이기도 합니다.

private (`bool`, *선택 사항*) : 저장소를 비공개로 만들지 여부입니다. `None`(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 이미 저장소가 존재하면 이 값은 무시됩니다.

token (`str`, *선택 사항*) : Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 `hf auth login`으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.

revision (`str`, *선택 사항*) : 업로드된 파일을 푸시할 브랜치입니다. 기본값은 `"main"` 브랜치입니다.

create_pr (`bool`, *선택 사항*, 기본값 `False`) : 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.

max_shard_size (`int` 또는 `str`, *선택 사항*, 기본값 `"500MB"`) : 허브에 업로드할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예: `"5MB"`)가 따라야 합니다.

num_shards (`int`, *선택 사항*) : 작성할 샤드 수. 기본적으로 샤드 수는 `max_shard_size`에 따라 결정됩니다.

embed_external_files (`bool`, 기본값 `True`) : 샤드에 파일 바이트를 임베드할지 여부입니다. 특히, push 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다. - [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 및 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image): 로컬 경로 정보를 제거하고 Parquet 파일에 파일 내용을 임베드합니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 임베딩할 샘플이나 미디어 파일이 많을 때 유용합니다. hf_xet, 즉 HF로의 빠른 업로드를 위한 rust 클라이언트와 함께 작동하도록 "spawn" 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

**반환값:**

huggingface_hub.CommitInfo

Parquet 데이터셋으로 Hub에 데이터셋을 업로드합니다. 데이터셋은 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image), [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 또는 [Video](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Video) 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. `embed_external_files`를 `False`로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

```python
>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)
```

데이터셋에 여러 스플릿(예: train/validation/test)이 있는 경우:

```python
>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]
```

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

```python
>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")
```

#### save_to_disk[[datasets.Dataset.save_to_disk]]

```python
save_to_disk(dataset_path: typing.Union[str, bytes, os.PathLike], max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[int] = None, num_proc: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1781)

**매개변수:**

dataset_path (`path-like`) : 데이터셋이 저장될 데이터셋 디렉터리의 경로 (예: `dataset/train`) 또는 원격 URI (예: `s3://my-bucket/dataset/train`).

max_shard_size (`int` 또는 `str`, *선택 사항*, 기본값 `"500MB"`) : 파일시스템에 저장할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예: `"50MB"`)가 따라야 합니다.

num_shards (`int`, *선택 사항*) : 작성할 샤드 수. 기본적으로 샤드 수는 `max_shard_size`와 `num_proc`에 따라 결정됩니다.

num_proc (`int`, *선택 사항*) : 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

데이터셋을 데이터셋 디렉터리에 저장하거나, `fsspec.spec.AbstractFileSystem`의 어떤 구현을 사용하여 파일 시스템에 저장합니다.

[Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image), [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio), [Video](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Video) 데이터의 경우:

모든 Image(), Audio(), Video() 데이터는 arrow 파일에 저장됩니다. 경로나 URL을 저장하려면 Value("string") 타입을 사용하세요.

예:

```py
>>> ds.save_to_disk("path/to/dataset/directory")
>>> ds.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> ds.save_to_disk("path/to/dataset/directory", num_shards=1024)
```

#### load_from_disk[[datasets.Dataset.load_from_disk]]

```python
load_from_disk(dataset_path: typing.Union[str, bytes, os.PathLike], keep_in_memory: typing.Optional[bool] = None, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1989)

**매개변수:**

dataset_path (`path-like`) : 데이터셋이 로드될 데이터셋 디렉터리의 경로 (예: `"dataset/train"`) 또는 원격 URI (예: `"s3//my-bucket/dataset/train"`).

keep_in_memory (`bool`, 기본값은 `None`) : 데이터셋을 메모리에 복사할지 여부입니다. `None`인 경우, `datasets.config.IN_MEMORY_MAX_SIZE`를 0이 아닌 값으로 설정하여 명시적으로 활성화하지 않는 한 데이터셋은 메모리에 복사되지 않습니다. 자세한 내용은 [성능 개선](../cache#improve-performance) 섹션을 참조하세요.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 또는 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

- `dataset_path`가 데이터셋 디렉터리의 경로인 경우, 요청한 데이터셋입니다.
- `dataset_path`가 데이터셋 딕토리의 경로인 경우, 각 스플릿을 가진 `datasets.DatasetDict`입니다.

이전에는 `save_to_disk`를 사용하여 저장된 데이터셋을 데이터셋 디렉터리 또는 `fsspec.spec.AbstractFileSystem`의 어떤 구현을 사용하는 파일 시스템에서 로드합니다.

예:

```py
>>> ds = load_from_disk("path/to/dataset/directory")
```

#### flatten_indices[[datasets.Dataset.flatten_indices]]

```python
flatten_indices(keep_in_memory: bool = False, cache_file_name: typing.Optional[str] = None, writer_batch_size: typing.Optional[int] = 1000, features: typing.Optional[datasets.features.features.Features] = None, disable_nullable: bool = False, num_proc: typing.Optional[int] = None, new_fingerprint: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L4297)

**매개변수:**

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

cache_file_name (`str`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

features (`Optional[datasets.Features]`, 기본값 `None`) : 자동 생성된 Features 대신 캐시 파일을 저장할 특정 [Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)를 사용합니다.

disable_nullable (`bool`, 기본값 `False`) : 테이블에 null 값을 허용합니다.

num_proc (`int`, 선택 사항, 기본값 `None`) : 캐시를 생성할 때 사용할 최대 프로세스 수입니다. 이미 캐시된 샤드는 순차적으로 로드됩니다

new_fingerprint (`str`, *선택 사항*, 기본값 `None`) : 변환 후 데이터셋의 새로운 지문입니다. `None`인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다

인덱스 매핑을 평탄화하여 새로운 Dataset을 생성하고 캐시합니다.

#### to_csv[[datasets.Dataset.to_csv]]

```python
to_csv(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, num_proc: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **to_csv_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5342)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.csv`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.csv`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

num_proc (`int`, *optional*) : 멀티프로세싱을 위한 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 `batch_size`의 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`이지만, 충분한 컴퓨팅 파워가 있다면 기본값의 5배 또는 10배로 설정해도 됩니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****to_csv_kwargs** (추가 키워드 인자): pandas의 [`pandas.DataFrame.to_csv`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html)에 전달할 매개변수입니다. 이제 `index`가 지정되지 않으면 기본적으로 `False`입니다. 인덱스를 작성하려면 `index=True`를 전달하고, `index_label`을 전달하여 인덱스 열 이름을 설정하세요.

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 csv로 내보냅니다

예:

```py
>>> ds.to_csv("path/to/dataset/directory")
```

#### to_pandas[[datasets.Dataset.to_pandas]]

```python
to_pandas(batch_size: typing.Optional[int] = None, batched: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5541)

**매개변수:**

batch_size (`int`, *선택 사항*) : `batched`가 `True`인 경우 배치의 크기(행 수). 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

batched (`bool`) : `True`로 설정하면 `batch_size` 행의 배치로 데이터셋을 반환하는 생성기를 반환합니다. 기본값은 `False`입니다(데이터셋 전체를 한 번에 반환).

**반환값:**

`pandas.DataFrame` 또는 `Iterator[pandas.DataFrame]`

`pandas.DataFrame`로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성기도 반환할 수 있습니다.

예:

```py
>>> ds.to_pandas()
```

#### to_dict[[datasets.Dataset.to_dict]]

```python
to_dict(batch_size: typing.Optional[int] = None, batched: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5401)

**매개변수:**

batch_size (`int`, *선택 사항*) : `batched`가 `True`인 경우 배치의 크기(행 수). 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

batched (`bool`) : `True`로 설정하면 `batch_size` 행의 배치로 데이터셋을 반환하는 생성기를 반환합니다. 기본값은 `False`입니다(데이터셋 전체를 한 번에 반환).

**반환값:**

`dict` 또는 `Iterator[dict]`

Python dict으로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성자(generator)를 반환할 수도 있습니다.

예:

```py
>>> ds.to_dict()
```

#### to_json[[datasets.Dataset.to_json]]

```python
to_json(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, num_proc: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **to_json_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5466)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.json`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.json`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

num_proc (`int`, *optional*) : 멀티프로세싱을 위한 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 `batch_size`의 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`이지만, 충분한 컴퓨팅 파워가 있다면 기본값의 5배 또는 10배로 설정해도 됩니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****to_json_kwargs** (additional keyword arguments) : Parameters to pass to pandas's [`pandas.DataFrame.to_json`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html). Default arguments are `lines=True` and `orient="records".  <Changed version="2.11.0">  The parameter `index` defaults to `False` if `orient` is `"split"` or `"table"`.  If you would like to write the index, pass `index=True`.  

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 JSON Lines 또는 JSON으로 내보냅니다.

기본 출력 형식은 [JSON Lines](https://jsonlines.org/)입니다. [JSON](https://www.json.org)으로 내보내려면 `lines=False` 인수와 원하는 `orient`를 전달하세요.

예:

```py
>>> ds.to_json("path/to/dataset/directory/filename.jsonl")
```

#### to_parquet[[datasets.Dataset.to_parquet]]

```python
to_parquet(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **parquet_writer_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5643)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.parquet`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.parquet`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본적으로 `datasets.config.MAX_ROW_GROUP_SIZE`로 정의된 "100MB"의 최대 압축 해제 바이트 크기를 가진 row group을 목표로 합니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****parquet_writer_kwargs** (추가 키워드 인자): PyArrow의 `pyarrow.parquet.ParquetWriter`에 전달할 매개변수.

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 parquet로 내보냅니다

예:

```py
>>> ds.to_parquet("path/to/dataset/directory")
```

#### to_sql[[datasets.Dataset.to_sql]]

```python
to_sql(name: str, con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')], batch_size: typing.Optional[int] = None, num_proc: typing.Optional[int] = None, **sql_writer_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5683)

**매개변수:**

name (`str`) : SQL 테이블 이름.

con (`str` 또는 `sqlite3.Connection` 또는 `sqlalchemy.engine.Connection` 또는 `sqlalchemy.engine.Connection`) : 데이터베이스에 쓰기 위해 사용되는 [URI 문자열](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls) 또는 SQLite3/SQLAlchemy 연결 객체.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

num_proc (`int`, *optional*) : 멀티프로세싱을 위한 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 `batch_size`의 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`이지만, 충분한 컴퓨팅 파워가 있다면 기본값의 5배 또는 10배로 설정해도 됩니다.

- ****sql_writer_kwargs** (추가 키워드 인자): [`pandas.DataFrame.to_sql`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html)에 전달할 매개변수입니다. 이제 `index`가 지정되지 않으면 기본적으로 `False`입니다. 인덱스를 기록하려면 `index=True`를 전달하고 `index_label`을 전달하여 인덱스 열 이름을 설정해야 합니다.

**반환값:** `int`

기록된 레코드 수입니다.

데이터셋을 SQL 데이터베이스로 내보냅니다.

예:

```py
>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)
```

#### to_iterable_dataset[[datasets.Dataset.to_iterable_dataset]]

```python
to_iterable_dataset(num_shards: typing.Optional[int] = 1)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L5781)

**매개변수:**

num_shards (`int`, 기본값 `1`) : 반복 가능 데이터셋을 인스턴스화할 때 정의할 샤드 수입니다. 이는 대규모 데이터셋에서 올바르게 셔플링할 수 있도록 하고, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 하거나 분산 환경에서 사용하는 데 특히 유용합니다. 샤드는 [datasets.Dataset.shard()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.shard)를 사용하여 정의됩니다. 이는 디스크에 아무것도 기록하지 않고 단순히 데이터를 슬라이스합니다.

**반환값:**

[datasets.IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

맵 스타일 [datasets.Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)에서 [datasets.IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)를 가져옵니다. 이는 [datasets.load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)로 스트리밍 모드에서 데이터셋을 로드하는 것과 동일하지만, 데이터가 로컬 파일에서 스트리밍되므로 훨씬 빠릅니다.

map-style dataset과 달리 iterable dataset은 지연 평가(lazy) 방식이며, 반복(iteration)만 가능합니다(예: for 루프 사용). 학습 루프에서 순차적으로 읽히기 때문에 iterable dataset은 map-style dataset보다 훨씬 빠릅니다. 필터링이나 처리와 같은 iterable dataset에 적용되는 모든 변환은 dataset의 반복을 시작할 때 실시간으로 수행됩니다.

그럼에도 불구하고 [datasets.IterableDataset.shuffle()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.shuffle)를 사용하여 반복 가능한 데이터셋을 섞을 수 있습니다. 이는 여러 샤드가 있고 버퍼 크기가 충분히 크도록 지정된 경우 가장 잘 작동하는 빠른 근사 셔플링입니다.

최상의 속도 성능을 얻으려면 데이터셋에 인덱스 매핑이 없는지 확인하세요. 인덱스 매핑이 있는 경우 데이터가 연속적으로 읽히지 않아 속도가 느려질 수 있습니다. 반복 가능(iterable) 데이터셋으로 전환하기 전에 `ds = ds.flatten_indices()`를 사용하여 데이터를 연속된 청크로 저장하고 최적의 속도를 확보할 수 있습니다.

예:

기본 사용법:
```python
>>> ids = ds.to_iterable_dataset()
>>> for example in ids:
...     pass
```

지연 필터링 및 처리를 사용하여:
```python
>>> ids = ds.to_iterable_dataset()
>>> ids = ids.filter(filter_fn).map(process_fn)  # will filter and process on-the-fly when you start iterating over the iterable dataset
>>> for example in ids:
...     pass
```

효율적인 셔플링을 가능하게 하는 샤딩:
```python
>>> ids = ds.to_iterable_dataset(num_shards=64)  # the dataset is split into 64 shards to be iterated over
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer for fast approximate shuffling when you start iterating
>>> for example in ids:
...     pass
```

PyTorch DataLoader를 사용하는 경우:
```python
>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.filter(filter_fn).map(process_fn)
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards to each worker to load, filter and process when you start iterating
>>> for example in ids:
...     pass
```

PyTorch DataLoader와 shuffling을 사용하여:
```python
>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from the shuffled list of shards to each worker when you start iterating
>>> for example in ids:
...     pass
```

PyTorch DataLoader와 shuffling을 사용하는 PyTorch DDP와 같은 분산 설정에서

```python
>>> from datasets.distributed import split_dataset_by_node
>>> ids = ds.to_iterable_dataset(num_shards=512)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> ids = split_dataset_by_node(ds, world_size=8, rank=0)  # will keep only 512 / 8 = 64 shards from the shuffled lists of shards when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from this node's list of shards to each worker when you start iterating
>>> for example in ids:
...     pass
```

와 여러 epoch:
```python
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> for epoch in range(n_epochs):
...     ids.set_epoch(epoch)  # will use effective_seed = seed + epoch to shuffle the shards and for the shuffle buffer when you start iterating
...     for example in ids:
...         pass
```

PyTorch DataLoader 또는 분산 환경에서 사용할 때 `IterableDataset.set_epoch()`도 자유롭게 사용할 수 있습니다.

#### add_faiss_index[[datasets.Dataset.add_faiss_index]]

```python
add_faiss_index(column: str, index_name: typing.Optional[str] = None, device: typing.Optional[int] = None, string_factory: typing.Optional[str] = None, metric_type: typing.Optional[int] = None, custom_index: typing.Optional[ForwardRef('faiss.Index')] = None, batch_size: int = 1000, train_size: typing.Optional[int] = None, faiss_verbose: bool = False, dtype = <class 'numpy.float32'>)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6339)

**매개변수:**

column (`str`) : 인덱스에 추가할 벡터의 열.

index_name (`str`, *선택 사항*) : 인덱스의 `index_name`/식별자입니다. 이는 [get_nearest_examples()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.get_nearest_examples) 또는 [search()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.search)를 호출할 때 사용되는 `index_name`입니다. 기본적으로 `column`에 해당합니다.

device (`Union[int, List[int]]`, *선택*) : 양의 정수인 경우, 사용할 GPU의 인덱스입니다. 음의 정수인 경우, 모든 GPU를 사용합니다. 양의 정수 목록이 전달되면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.

string_factory (`str`, *선택 사항*) : Faiss의 인덱스 팩토리에 전달되어 인덱스를 생성합니다. 기본 인덱스 클래스는 `IndexFlat`입니다.

metric_type (`int`, *선택 사항*) : 메트릭의 유형. 예: `faiss.METRIC_INNER_PRODUCT` 또는 `faiss.METRIC_L2`.

custom_index (`faiss.Index`, *optional*) : 필요에 맞게 이미 인스턴스화하고 구성한 사용자 지정 Faiss 인덱스입니다.

batch_size (`int`) : `FaissIndex`에 벡터를 추가할 때 사용할 배치 크기입니다. 기본값은 `1000`입니다.

train_size (`int`, *선택 사항*) : 인덱스에 학습 단계가 필요한 경우, 인덱스 학습에 사용할 벡터의 수를 지정합니다.

faiss_verbose (`bool`, 기본값 `False`) : Faiss 인덱스의 상세 로그 출력을 활성화합니다.

dtype (`data-type`) : 인덱싱되는 numpy 배열의 dtype입니다. 기본값은 `np.float32`입니다.

Faiss를 사용하여 빠른 검색을 위한 dense index를 추가합니다. 기본적으로 지정된 컬럼의 벡터를 기준으로 인덱싱이 수행됩니다. GPU에서 실행하려면 `device`를 지정할 수 있습니다(`device`는 GPU 인덱스여야 합니다). Faiss에 대한 자세한 정보는 다음에서 확인할 수 있습니다:

- [문자열 팩토리](https://github.com/facebookresearch/faiss/wiki/The-index-factory)에 대해

예:

```python
>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds_with_embeddings = ds.map(lambda example: {'embeddings': embed(example['line']}))
>>> ds_with_embeddings.add_faiss_index(column='embeddings')
>>> # query
>>> scores, retrieved_examples = ds_with_embeddings.get_nearest_examples('embeddings', embed('my new query'), k=10)
>>> # save index
>>> ds_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss')

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> # load index
>>> ds.load_faiss_index('embeddings', 'my_index.faiss')
>>> # query
>>> scores, retrieved_examples = ds.get_nearest_examples('embeddings', embed('my new query'), k=10)
```

#### add_faiss_index_from_external_arrays[[datasets.Dataset.add_faiss_index_from_external_arrays]]

```python
add_faiss_index_from_external_arrays(external_arrays: array, index_name: str, device: typing.Optional[int] = None, string_factory: typing.Optional[str] = None, metric_type: typing.Optional[int] = None, custom_index: typing.Optional[ForwardRef('faiss.Index')] = None, batch_size: int = 1000, train_size: typing.Optional[int] = None, faiss_verbose: bool = False, dtype = <class 'numpy.float32'>)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6419)

**매개변수:**

external_arrays (`np.array`) : 인덱스에 라이브러리 외부의 배열을 사용하려면 `external_arrays`를 설정할 수 있습니다. 이 경우 주어진 `column`의 배열 대신 `external_arrays`를 사용하여 Faiss 인덱스를 생성합니다.

index_name (`str`) : 인덱스의 `index_name`/식별자입니다. 이는 [get_nearest_examples()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.get_nearest_examples) 또는 [search()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.search)를 호출할 때 사용되는 `index_name`입니다.

device (선택 사항 `Union[int, List[int]]`, *optional*) : 양의 정수인 경우, 사용할 GPU의 인덱스입니다. 음의 정수인 경우, 모든 GPU를 사용합니다. 양의 정수 목록이 전달되면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.

string_factory (`str`, *선택 사항*) : Faiss의 인덱스 팩토리에 전달되어 인덱스를 생성합니다. 기본 인덱스 클래스는 `IndexFlat`입니다.

metric_type (`int`, *선택 사항*) : 메트릭의 유형. 예: `faiss.faiss.METRIC_INNER_PRODUCT` 또는 `faiss.METRIC_L2`.

custom_index (`faiss.Index`, *optional*) : 필요에 맞게 이미 인스턴스화하고 구성한 사용자 지정 Faiss 인덱스입니다.

batch_size (`int`, *선택 사항*) : FaissIndex에 벡터를 추가할 때 사용할 배치 크기. 기본값은 1000입니다.

train_size (`int`, *선택 사항*) : 인덱스에 학습 단계가 필요한 경우, 인덱스 학습에 사용할 벡터의 수를 지정합니다.

faiss_verbose (`bool`, 기본값 False) : Faiss 인덱스의 상세 로그 출력을 활성화합니다.

dtype (`numpy.dtype`) : 인덱싱되는 numpy 배열의 dtype입니다. 기본값은 np.float32입니다.

Faiss를 사용하여 빠른 검색을 위한 dense index를 추가합니다. 인덱스는 `external_arrays`의 벡터를 사용하여 생성됩니다. GPU에서 실행하려면 `device`를 지정할 수 있습니다(`device`는 GPU 인덱스여야 합니다). Faiss에 대한 자세한 정보는 다음에서 확인할 수 있습니다:

- [문자열 팩토리](https://github.com/facebookresearch/faiss/wiki/The-index-factory)에 대해

#### save_faiss_index[[datasets.Dataset.save_faiss_index]]

```python
save_faiss_index(index_name: str, file: typing.Union[str, pathlib.PurePath], storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L535)

**매개변수:**

index_name (`str`) : 인덱스의 index_name/식별자입니다. 이는 `.get_nearest` 또는 `.search`를 호출할 때 사용되는 index_name입니다.

file (`str`) : 디스크 또는 원격 URI(예: `"s3://my-bucket/index.faiss"`)에 직렬화된 faiss 인덱스의 경로.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

FaissIndex를 디스크에 저장합니다.

#### load_faiss_index[[datasets.Dataset.load_faiss_index]]

```python
load_faiss_index(index_name: str, file: typing.Union[str, pathlib.PurePath], device: typing.Union[int, list[int], NoneType] = None, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L553)

**매개변수:**

index_name (`str`) : 인덱스의 index_name/식별자입니다. 이는 `.get_nearest` 또는 `.search`를 호출할 때 사용되는 index_name입니다.

file (`str`) : 디스크 또는 원격 URI(예: `"s3://my-bucket/index.faiss"`)에 직렬화된 faiss 인덱스의 경로.

device (선택 사항 `Union[int, List[int]]`) : 양의 정수인 경우, 사용할 GPU의 인덱스입니다. 음의 정수인 경우, 모든 GPU를 사용합니다. 양의 정수 목록이 전달되면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

Load a FaissIndex from disk.

추가 구성을 수행하려면 `.get_index(index_name).faiss_index`를 통해 faiss 인덱스 객체에 접근하여 필요에 맞게 조정할 수 있습니다.

#### add_elasticsearch_index[[datasets.Dataset.add_elasticsearch_index]]

```python
add_elasticsearch_index(column: str, index_name: typing.Optional[str] = None, host: typing.Optional[str] = None, port: typing.Optional[int] = None, es_client: typing.Optional[ForwardRef('elasticsearch.Elasticsearch')] = None, es_index_name: typing.Optional[str] = None, es_index_config: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6478)

**매개변수:**

column (`str`) : 인덱스에 추가할 문서의 열.

index_name (`str`, *선택 사항*) : 인덱스의 `index_name`/식별자입니다. 이는 [get_nearest_examples()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.get_nearest_examples) 또는 [search()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.search)를 호출할 때 사용되는 인덱스 이름입니다. 기본적으로 `column`에 해당합니다.

host (`str`, *선택 사항*, 기본값 `localhost`) : ElasticSearch가 실행 중인 호스트입니다.

port (`str`, *선택 사항*, 기본값 `9200`) : ElasticSearch가 실행 중인 포트입니다.

es_client (`elasticsearch.Elasticsearch`, *선택 사항*) : `None`인 경우 인덱스를 생성하는 데 사용되는 elasticsearch 클라이언트입니다.

es_index_name (`str`, *선택 사항*) : 인덱스를 생성하는 데 사용되는 elasticsearch 인덱스 이름입니다.

es_index_config (`dict`, *선택 사항*) : elasticsearch 인덱스의 구성입니다. 기본 구성은 다음과 같습니다: ``` { "settings": { "number_of_shards": 1, "analysis": {"analyzer": {"stop_standard": {"type": "standard", " stopwords": "_english_"}}}, }, "mappings": { "properties": { "text": { "type": "text", "analyzer": "standard", "similarity": "BM25" }, } }, } ```

ElasticSearch를 사용하여 빠른 검색을 위한 텍스트 인덱스를 추가합니다. 이 작업은 원위치(in-place)로 수행됩니다.

예:

```python
>>> es_client = elasticsearch.Elasticsearch()
>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds.add_elasticsearch_index(column='line', es_client=es_client, es_index_name="my_es_index")
>>> scores, retrieved_examples = ds.get_nearest_examples('line', 'my new query', k=10)
```

#### load_elasticsearch_index[[datasets.Dataset.load_elasticsearch_index]]

```python
load_elasticsearch_index(index_name: str, es_index_name: str, host: typing.Optional[str] = None, port: typing.Optional[int] = None, es_client: typing.Optional[ForwardRef('Elasticsearch')] = None, es_index_config: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L637)

**매개변수:**

index_name (`str`) : 인덱스의 `index_name`/식별자입니다. `get_nearest` 또는 `search`를 호출할 때 사용되는 인덱스 이름입니다.

es_index_name (`str`) : 로드할 elasticsearch 인덱스의 이름.

host (`str`, *선택 사항*, 기본값 `localhost`) : ElasticSearch가 실행 중인 호스트입니다.

port (`str`, *선택 사항*, 기본값 `9200`) : ElasticSearch가 실행 중인 포트입니다.

es_client (`elasticsearch.Elasticsearch`, *선택 사항*) : `None`인 경우 인덱스를 생성하는 데 사용되는 elasticsearch 클라이언트입니다.

es_index_config (`dict`, *선택 사항*) : elasticsearch 인덱스의 구성입니다. 기본 구성은 다음과 같습니다: ``` { "settings": { "number_of_shards": 1, "analysis": {"analyzer": {"stop_standard": {"type": "standard", " stopwords": "_english_"}}}, }, "mappings": { "properties": { "text": { "type": "text", "analyzer": "standard", "similarity": "BM25" }, } }, } ```

ElasticSearch를 사용하여 기존 텍스트 인덱스를 로드하여 빠른 검색을 수행합니다.

#### list_indexes[[datasets.Dataset.list_indexes]]

```python
list_indexes()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L438)

연결된 모든 인덱스의 `colindex_nameumns`/식별자를 나열합니다.

#### get_index[[datasets.Dataset.get_index]]

```python
get_index(index_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L442)

**매개변수:**

index_name (`str`) : 인덱스 이름.

**반환값:**

`BaseIndex`

연결된 모든 인덱스의 `index_name`/식별자를 나열합니다.

#### drop_index[[datasets.Dataset.drop_index]]

```python
drop_index(index_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L684)

**매개변수:**

index_name (`str`) : 인덱스의 `index_name`/식별자.

지정된 열을 가진 인덱스를 삭제합니다.

#### 검색[[datasets.Dataset.search]]

```python
search(index_name: str, query: typing.Union[str, <built-in function array>], k: int = 10, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L693)

**매개변수:**

index_name (`str`) : 인덱스의 이름/식별자.

query (`Union[str, np.ndarray]`) : `index_name`이 텍스트 인덱스인 경우 문자열로, `index_name`이 벡터 인덱스인 경우 numpy 배열로 표현된 쿼리입니다.

k (`int`) : 가져올 예시의 수.

**반환값:** `(scores, indices)`

다음과 같은 `(scores, indices)`의 튜플입니다:
- **scores** (`List[List[float]`): 검색된 예제에 대한 FAISS(기본값은 `IndexFlatL2`) 또는 ElasticSearch의 검색 점수
- **indices** (`List[List[int]]`): 검색된 예시의 인덱스

dataset에서 쿼리에 가장 가까운 예시 인덱스를 찾습니다.

#### search_batch[[datasets.Dataset.search_batch]]

```python
search_batch(index_name: str, queries: typing.Union[list[str], <built-in function array>], k: int = 10, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L713)

**매개변수:**

index_name (`str`) : 인덱스의 `index_name`/식별자.

queries (`Union[List[str], np.ndarray]`) : `index_name`이 텍스트 인덱스인 경우 문자열 목록으로, `index_name`이 벡터 인덱스인 경우 numpy 배열로 표현된 쿼리입니다.

k (`int`) : 쿼리당 가져올 예시의 수.

**반환값:** `(total_scores, total_indices)`

다음과 같은 `(total_scores, total_indices)`의 튜플입니다:
- **total_scores** (`List[List[float]`): 쿼리별로 검색된 예시들의 FAISS(기본값은 `IndexFlatL2`) 또는 ElasticSearch 검색 점수
- **total_indices** (`List[List[int]]`): 쿼리별 검색된 예시의 인덱스

dataset에서 쿼리에 가장 가까운 예시 인덱스를 찾습니다.

#### get_nearest_examples[[datasets.Dataset.get_nearest_examples]]

```python
get_nearest_examples(index_name: str, query: typing.Union[str, <built-in function array>], k: int = 10, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L735)

**매개변수:**

index_name (`str`) : 인덱스의 index_name/식별자.

query (`Union[str, np.ndarray]`) : `index_name`이 텍스트 인덱스인 경우 문자열로, `index_name`이 벡터 인덱스인 경우 numpy 배열로 표현된 쿼리입니다.

k (`int`) : 가져올 예시의 수.

**반환값:** `(scores, examples)`

다음과 같은 `(scores, examples)` 튜플입니다:
- **scores** (`List[float]`): 검색된 예제에 대한 FAISS(기본적으로 `IndexFlatL2`) 또는 ElasticSearch의 검색 점수
- **examples** (`dict`): 검색된 예시

데이터셋에서 쿼리에 가장 가까운 예시를 찾습니다.

#### get_nearest_examples_batch[[datasets.Dataset.get_nearest_examples_batch]]

```python
get_nearest_examples_batch(index_name: str, queries: typing.Union[list[str], <built-in function array>], k: int = 10, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/search.py#L759)

**매개변수:**

index_name (`str`) : 인덱스의 `index_name`/식별자.

queries (`Union[List[str], np.ndarray]`) : `index_name`이 텍스트 인덱스인 경우 문자열 목록으로, `index_name`이 벡터 인덱스인 경우 numpy 배열로 표현된 쿼리입니다.

k (`int`) : 쿼리당 가져올 예시의 수.

**반환값:** `(total_scores, total_examples)`

다음과 같은 `(total_scores, total_examples)` 튜플입니다:
- **total_scores** (`List[List[float]`): 쿼리별로 검색된 예시들의 FAISS(기본값은 `IndexFlatL2`) 또는 ElasticSearch 검색 점수
- **total_examples** (`List[dict]`): 쿼리별로 검색된 예시

데이터셋에서 쿼리에 가장 가까운 예시를 찾습니다.

#### info[[datasets.Dataset.info]]

```python
info()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L172)

데이터셋의 모든 메타데이터를 포함하는 [DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo) 객체.

#### split[[datasets.Dataset.split]]

```python
split()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L177)

명명된 데이터셋 분할에 해당하는 [NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit) 객체.

#### builder_name[[datasets.Dataset.builder_name]]

```python
builder_name()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L182)

#### 인용[[datasets.Dataset.citation]]

```python
citation()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L186)

#### config_name[[datasets.Dataset.config_name]]

```python
config_name()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L190)

#### dataset_size[[datasets.Dataset.dataset_size]]

```python
dataset_size()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L194)

#### 설명[[datasets.Dataset.description]]

```python
description()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L198)

#### download_checksums[[datasets.Dataset.download_checksums]]

```python
download_checksums()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L202)

#### download_size[[datasets.Dataset.download_size]]

```python
download_size()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L206)

#### features[[datasets.Dataset.features]]

```python
features()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L785)

#### 홈페이지[[datasets.Dataset.homepage]]

```python
homepage()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L214)

#### 라이선스[[datasets.Dataset.license]]

```python
license()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L218)

#### size_in_bytes[[datasets.Dataset.size_in_bytes]]

```python
size_in_bytes()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L222)

#### supervised_keys[[datasets.Dataset.supervised_keys]]

```python
supervised_keys()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L226)

#### 버전[[datasets.Dataset.version]]

```python
version()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L230)

#### from_csv[[datasets.Dataset.from_csv]]

```python
from_csv(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, num_proc: typing.Optional[int] = None, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1282)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : CSV 파일의 경로(들).

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), *선택 사항*) : 데이터셋에 할당할 분할 이름.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 로컬에서 데이터셋을 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

- ****kwargs** (추가 키워드 인자) : `pandas.read_csv`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

CSV 파일에서 Dataset을 생성합니다.

CSV 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크에 있는 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> ds = Dataset.from_csv('path/to/dataset.csv')
```

#### from_json[[datasets.Dataset.from_json]]

```python
from_json(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, field: typing.Optional[str] = None, num_proc: typing.Optional[int] = None, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1422)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : JSON 또는 JSON Lines 파일의 경로입니다.

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), *선택 사항*) : 데이터셋에 할당할 분할 이름.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

field (`str`, *선택 사항*) : 데이터셋이 포함된 JSON 파일의 필드 이름.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 로컬에서 데이터셋을 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

- ****kwargs** (추가 키워드 인자) : `JsonConfig`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

JSON 또는 JSON Lines 파일에서 Dataset을 생성합니다.

JSON 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> ds = Dataset.from_json('path/to/dataset.json')
```

#### from_parquet[[datasets.Dataset.from_parquet]]

```python
from_parquet(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, columns: typing.Optional[list[str]] = None, num_proc: typing.Optional[int] = None, filters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = None, fragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = None, on_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error', **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1481)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : Parquet 파일의 경로(들).

split (`NamedSplit`, *선택 사항*) : 데이터셋에 할당할 분할 이름.

features (`Features`, *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

columns (`List[str]`, *선택 사항*) : `None`이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 'a'는 'a.b', 'a.c', 'a.d.e'를 선택합니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 로컬에서 데이터셋을 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

filters (`Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]]`, *선택 사항*) : 필터와 일치하는 행만 반환합니다. 가능하면 데이터 소스에서 발견되는 파티션 정보나 내부 메타데이터(예: Parquet 통계)를 활용하기 위해 조건을 아래로 전달(push down)합니다. 그렇지 않으면 RecordBatches를 로드한 후 반환하기 전에 필터링합니다.

fragment_scan_options (`pyarrow.dataset.ParquetFragmentScanOptions`, *선택 사항*) : Parquet 조각에 대한 스캔 전용 옵션입니다. 버퍼링 및 캐싱을 구성하는 데 특히 유용합니다.

on_bad_files (`Literal["error", "warn", "skip"]`, *선택 사항*, 기본값은 "error") : 읽을 수 없는 파일(잘못된 파일)을 만나면 어떻게 처리할지 지정합니다. 허용되는 값은 다음과 같습니다. * 'error': 잘못된 파일을 만나면 예외를 발생시킵니다. * 'warn': 잘못된 파일을 만나면 경고를 발생시키고 해당 파일을 건너뜁니다. * 'skip': 잘못된 파일을 만나면 경고나 예외 없이 건너뜁니다.

- ****kwargs** (추가 키워드 인자) : `ParquetConfig`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

Parquet 파일에서 Dataset을 생성합니다.

Parquet 파일을 읽고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> ds = Dataset.from_parquet('path/to/dataset.parquet')
```

일부 열을 로드합니다:

```python
>>> ds = Dataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])
```

데이터를 효율적으로 필터링하고, 필요에 따라 파일 전체 또는 행 그룹을 건너뜁니다:

```python
>>> filters = [("col_0", "==", 0)]
>>> ds = Dataset.from_parquet(parquet_files_list, filters=filters)
```

#### from_text[[datasets.Dataset.from_text]]

```python
from_text(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, num_proc: typing.Optional[int] = None, keep_linebreaks: bool = False, sample_by: typing.Literal['line', 'paragraph', 'document'] = 'line', **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1578)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : 텍스트 파일의 경로(들).

split (`NamedSplit`, *선택 사항*) : 데이터셋에 할당할 분할 이름.

features (`Features`, *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 로컬에서 데이터셋을 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

keep_linebreaks : (`bool`, 기본값 False): 줄바꿈을 유지할지 여부.

sample_by (`Literal["line", "paragraph", "document"]`, 기본값은 "line") : 데이터를 줄, 문단 또는 문서 단위로 로드할지 여부입니다. 기본적으로 데이터셋의 한 행은 한 줄을 나타냅니다.

- ****kwargs** (추가 키워드 인자) : `TextConfig`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

텍스트 파일에서 Dataset을 생성합니다.

텍스트 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> ds = Dataset.from_text('path/to/dataset.txt')
```

#### from_sql[[datasets.Dataset.from_sql]]

```python
from_sql(sql: typing.Union[str, ForwardRef('sqlalchemy.sql.Selectable')], con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')], features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L1706)

**매개변수:**

sql (`str` 또는 `sqlalchemy.sql.Selectable`) : 실행할 SQL 쿼리 또는 테이블 이름.

con (`str` 또는 `sqlite3.Connection` 또는 `sqlalchemy.engine.Connection` 또는 `sqlalchemy.engine.Connection`) : 데이터베이스 연결을 인스턴스화하는 데 사용되는 [URI 문자열](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls) 또는 SQLite3/SQLAlchemy 연결 객체.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

- ****kwargs** (추가 키워드 인자) : `SqlConfig`에 전달할 키워드 인자입니다.

**반환값:**

[데이터셋](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)

SQL 쿼리 또는 데이터베이스 테이블에서 Dataset을 생성합니다.

SQL 데이터베이스를 쿼리하고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

```py
>>> # Fetch a database table
>>> ds = Dataset.from_sql("test_data", "postgres:///db_name")
>>> # Execute a SQL query on the table
>>> ds = Dataset.from_sql("SELECT sentence FROM test_data", "postgres:///db_name")
>>> # Use a Selectable object to specify the query
>>> from sqlalchemy import select, text
>>> stmt = select([text("sentence")]).select_from(text("test_data"))
>>> ds = Dataset.from_sql(stmt, "postgres:///db_name")
```

> [!TIP]
> `con`이 URI 문자열로 지정된 경우에만 반환된 데이터셋을 캐시할 수 있습니다.

#### align_labels_with_mapping[[datasets.Dataset.align_labels_with_mapping]]

```python
align_labels_with_mapping(label2id: dict, label_column: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L6600)

**매개변수:**

label2id (`dict`) : 데이터셋을 정렬하기 위한 라벨 이름에서 ID로 매핑하는 값

label_column (`str`) : 정렬할 라벨의 열 이름.

데이터셋의 라벨 ID와 라벨 이름 매핑을 입력 `label2id` 매핑과 일치하도록 정렬합니다. 이는 모델의 예측된 라벨이 데이터셋과 일치하는지 확인하고 싶을 때 유용합니다. 정렬은 소문자 라벨 이름을 사용하여 수행됩니다.

예:

```python
>>> # dataset with mapping {'entailment': 0, 'neutral': 1, 'contradiction': 2}
>>> ds = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> # mapping to align with
>>> label2id = {'CONTRADICTION': 0, 'NEUTRAL': 1, 'ENTAILMENT': 2}
>>> ds_aligned = ds.align_labels_with_mapping(label2id, "label")
```

#### datasets.concatenate_datasets[[datasets.concatenate_datasets]]

```python
datasets.concatenate_datasets(dsets: list, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, axis: int = 0)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/combine.py#L168)

**매개변수:**

dsets (`List[datasets.Dataset]` 또는 `List[datasets.IterableDataset]`) : 연결할 Datasets 목록.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

axis (`{0, 1}`, 기본값은 `0`) : 연결할 축입니다. `0`은 행(수직) 방향, `1`은 열(수평) 방향을 의미합니다.

여러 데이터셋(소스)을 하나의 데이터셋으로 연결합니다.

axis=0을 사용하면 세로로 연결하며(기본값), axis=1을 사용하면 가로로 연결합니다.

반복 가능 데이터셋에 대한 참고:

* axis=0인 경우, 결과 데이터셋의 `num_shards`는 각 데이터셋의 `num_shards` 합계입니다.
* axis=1인 경우, 데이터가 어긋나지 않도록 결과 데이터셋은 하나(1)의 샤드로 구성됩니다.
* if the datasets were split with [datasets.distributed.split_dataset_by_node()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.distributed.split_dataset_by_node), they must all be split the same way, and the resulting dataset keeps that split.

예:

```py
>>> ds3 = concatenate_datasets([ds1, ds2])
```

#### datasets.interleave_datasets[[datasets.interleave_datasets]]

```python
datasets.interleave_datasets(datasets: list, probabilities: typing.Optional[list[float]] = None, seed: typing.Optional[int] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, stopping_strategy: typing.Literal['first_exhausted', 'all_exhausted', 'all_exhausted_without_replacement'] = 'first_exhausted')
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/combine.py#L18)

**매개변수:**

datasets (`List[Dataset]` 또는 `List[IterableDataset]`) : 인터리빙할 데이터셋 목록.

probabilities (`List[float]`, *선택 사항*, 기본값 `None`) : 지정된 경우, 이 확률에 따라 한 번에 하나의 소스에서 예시를 샘플링하여 새로운 데이터셋이 구성됩니다.

seed (`int`, *선택 사항*, 기본값 `None`) : 각 예제에 사용할 소스를 선택하는 데 사용되는 무작위 시드입니다.

info ([DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo), *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), *선택 사항*) : 데이터셋 분할의 이름.

stopping_strategy (`str`, 기본값은 `first_exhausted`) : 현재 제안되는 전략은 세 가지로, `first_exhausted`, `all_exhausted`, `all_exhausted_without_replacement`입니다. 기본적으로 `first_exhausted`는 언더샘플링 전략으로, 하나의 데이터셋에서 샘플이 모두 소진되는 즉시 데이터셋 구성이 중단됩니다. 전략이 `all_exhausted`인 경우 오버샘플링 전략을 사용하여, 모든 데이터셋의 모든 샘플이 최소 한 번씩 추가된 즉시 데이터셋 구성이 중단됩니다. 전략이 `all_exhausted_without_replacement`인 경우 각 데이터셋의 각 샘플이 오직 한 번만 샘플링되도록 보장합니다. 전략이 `all_exhausted`인 경우 인터리브 데이터셋의 크기가 매우 커질 수 있다는 점에 유의하세요. - 확률이 지정되지 않은 경우, 결과 데이터셋에는 `max_length_datasets*nb_dataset`개의 샘플이 포함됩니다. - 확률이 지정된 경우, 일부 데이터셋의 방문 확률이 매우 낮은 경우 결과 데이터셋에는 더 많은 샘플이 포함됩니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 또는 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

`datasets` 입력 매개변수에 따라 반환 유형이 달라집니다. 입력이 `Dataset` 목록이면 `Dataset`, `IterableDataset` 목록이면 `IterableDataset`입니다.

여러 데이터셋(소스)을 하나의 데이터셋으로 번갈아 배치합니다. 새로운 데이터셋은 소스 간에 번갈아가며 예시를 가져와서 구성됩니다.

이 함수는 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체의 목록 또는 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset) 객체의 목록에 사용할 수 있습니다.

- `probabilities`가 `None`(기본값)인 경우, 각 소스에서 예시를 가져오도록 순환하며 새로운 데이터셋이 구성됩니다.
- `probabilities`가 `None`이 아닌 경우, 제공된 확률에 따라 한 번에 무작위 소스에서 예시를 가져와서 새로운 데이터셋이 구성됩니다.

`oversampling`이 `True`인 경우를 제외하고, 생성된 데이터셋은 소스 데이터셋 중 하나가 예제를 모두 소진하면 종료됩니다. `oversampling`이 `True`인 경우, 생성된 데이터셋은 모든 데이터셋이 적어도 한 번씩 예제를 모두 소진하면 종료됩니다.

반복 가능 데이터셋에 대한 참고:

* 결과 데이터셋의 `num_shards`는 각 데이터셋의 `num_shards` 중 최소값으로 설정되어 좋은 병렬성을 보장합니다. 일부 데이터셋의 샤드 수가 매우 낮은 경우 [IterableDataset.reshard()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.reshard)를 사용할 수 있습니다.
* 분산 환경 또는 PyTorch DataLoader 워커에서 중단 전략은 프로세스별로 적용됩니다. 따라서 샤드된 반복 가능 데이터셋에서 "first_exhausted" 전략을 사용하면 전체 샘플 수가 더 적게 생성될 수 있습니다(워커당 서브데이터셋당 최대 1개의 샘플 누락).

예:

일반 데이터셋(맵 스타일)의 경우:

```python
>>> from datasets import Dataset, interleave_datasets
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22]})
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 10, 0, 1, 2, 21, 0, 11, 1, 2, 0, 1, 12, 2, 10, 0, 22]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12, 13]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22, 23, 24]})
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22, 0, 13, 23, 1, 10, 24]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 13, ..., 0, 1, 2, 0, 24]
For datasets in streaming mode (iterable):

>>> from datasets import interleave_datasets
>>> d1 = load_dataset('allenai/c4', 'es', split='train', streaming=True)
>>> d2 = load_dataset('allenai/c4', 'fr', split='train', streaming=True)
>>> dataset = interleave_datasets([d1, d2])
>>> iterator = iter(dataset)
>>> next(iterator)
{'text': 'Comprar Zapatillas para niña en chancla con goma por...'}
>>> next(iterator)
{'text': 'Le sacre de philippe ier, 23 mai 1059 - Compte Rendu...'
```

#### datasets.distributed.split_dataset_by_node[[datasets.distributed.split_dataset_by_node]]

```python
datasets.distributed.split_dataset_by_node(dataset: ~DatasetType, rank: int, world_size: int, strategy: typing.Literal['auto', 'shards', 'examples'] = 'auto')
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/distributed.py#L10)

**매개변수:**

dataset ([Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 또는 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)) : 노드별로 분할할 데이터셋.

rank (`int`) : 현재 노드의 랭크.

world_size (`int`) : 노드의 총 개수.

strategy (`str`, 기본값 `"auto"`) : 반복 가능한 데이터셋을 분할하는 방법. `"auto"`, `"shards"`, 또는 `"examples"` 중 하나여야 합니다. Map 스타일 데이터셋은 `"auto"`만 지원합니다.

**반환값:** [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 또는 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

`rank` 랭크의 노드에서 사용할 데이터셋.

`world_size` 크기의 노드 풀에서 `rank` 랭크의 노드를 위해 데이터셋을 분할합니다.

map 스타일 데이터셋의 경우:

각 노드는 데이터의 청크를 할당받습니다. 예를 들어, rank 0은 데이터셋의 첫 번째 청크를 받습니다. 데이터 로딩 처리량을 최대화하기 위해, 가능하면 디스크에 연속된 데이터로 청크를 구성합니다.

반복 가능한 데이터셋의 경우:

`strategy` 분할은 `"auto"`, `"shards"`, 또는 `"examples"`일 수 있습니다:

* `"shards"`: 샤드는 노드에 고르게 할당됩니다
* `"examples"`: 각 노드는 `world_size`개 중 1개의 예제를 유지하고, 나머지 예제는 건너뜁니다
* `"auto"` (기본값): 데이터셋의 샤드 수가 `world_size`의 약수인 경우 `"shards"`를 사용합니다
(즉, `dataset.num_shards % world_size == 0`인 경우)이며, 이때가 가장 최적화됩니다. 그렇지 않으면 `"examples"`를 사용합니다.

> [!WARNING]
> 분산 환경에서 반복 가능한(iterable) 데이터셋을 섞을 경우, [IterableDataset.shuffle()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.shuffle)에서 고정된 `seed`를 설정하는지 확인하세요.
따라서 모든 노드에서 동일한 셔플된 샤드 목록을 사용하여 해당 노드가 건너뛰어야 할 샤드를 파악합니다.

#### datasets.enable_caching[[datasets.enable_caching]]

```python
datasets.enable_caching()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/fingerprint.py#L120)

데이터셋에 transforms를 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 보다 정확히 말하면, 캐싱이 비활성화된 경우:
- cache 파일은 항상 다시 생성됩니다
- cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
- cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
- 변환된 데이터셋을 저장하려면 [save_to_disk()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.save_to_disk)를 사용하세요. 세션이 닫히면 삭제됩니다.
- caching은 [load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면
[load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)의 `download_mode` 매개변수

#### datasets.disable_caching[[datasets.disable_caching]]

```python
datasets.disable_caching()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/fingerprint.py#L141)

데이터셋에 transforms를 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 보다 정확히 말하면, 캐싱이 비활성화된 경우:
- cache 파일은 항상 다시 생성됩니다
- cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
- cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
- 변환된 데이터셋을 저장하려면 [save_to_disk()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.save_to_disk)를 사용하세요. 세션이 닫히면 삭제됩니다.
- caching은 [load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면
[load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)의 `download_mode` 매개변수

#### datasets.is_caching_enabled[[datasets.is_caching_enabled]]

```python
datasets.is_caching_enabled()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/fingerprint.py#L162)

데이터셋에 transforms를 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 보다 정확히 말하면, 캐싱이 비활성화된 경우:
- cache 파일은 항상 다시 생성됩니다
- cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
- cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
- 변환된 데이터셋을 저장하려면 [save_to_disk()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.save_to_disk)를 사용하세요. 세션이 닫히면 삭제됩니다.
- caching은 [load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면
[load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)의 `download_mode` 매개변수

#### datasets.Column[[datasets.Column]]

```python
datasets.Column(source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')], column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L638)

[Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset)의 특정 열에 대한 반복 가능한 객체(iterable)입니다.

예:

데이터셋의 "text" 열의 텍스트를 반복합니다:

```python
for text in dataset["text"]:
    ...
```

중첩된 컬럼에서도 작동합니다:

```python
for source in dataset["metadata"]["source"]:
    ...
```

## DatasetDict[[datasets.DatasetDict]]

키로 분할 이름('train', 'test' 등)을, 값으로 `Dataset` 객체를 가지는 딕셔너리입니다. map 또는 filter와 같은 데이터셋 변환 메서드를 제공하여 모든 분할을 한 번에 처리할 수 있습니다.

#### datasets.DatasetDict[[datasets.DatasetDict]]

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L53)

데이터셋 변환 메서드(map, filter 등)를 가진 사전(str: datasets.Dataset의 dict)

#### data[[datasets.DatasetDict.data]]

```python
data()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L94)

각 split을 뒷받침하는 Apache Arrow 테이블.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.data
```

#### cache_files[[datasets.DatasetDict.cache_files]]

```python
cache_files()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L109)

각 split을 뒷받침하는 Apache Arrow 테이블을 포함하는 캐시 파일.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cache_files
{'test': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-test.arrow'}],
 'train': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-train.arrow'}],
 'validation': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]}
```

#### num_columns[[datasets.DatasetDict.num_columns]]

```python
num_columns()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L127)

데이터셋의 각 분할에 대한 열의 수.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_columns
{'test': 2, 'train': 2, 'validation': 2}
```

#### num_rows[[datasets.DatasetDict.num_rows]]

```python
num_rows()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L143)

데이터셋의 각 분할에 포함된 행의 수.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_rows
{'test': 1066, 'train': 8530, 'validation': 1066}
```

#### column_names[[datasets.DatasetDict.column_names]]

```python
column_names()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L159)

데이터셋의 각 split에 포함된 열의 이름.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.column_names
{'test': ['text', 'label'],
 'train': ['text', 'label'],
 'validation': ['text', 'label']}
```

#### shape[[datasets.DatasetDict.shape]]

```python
shape()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L177)

데이터셋의 각 분할의 모양(행 수, 열 수).

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.shape
{'test': (1066, 2), 'train': (8530, 2), 'validation': (1066, 2)}
```

#### unique[[datasets.DatasetDict.unique]]

```python
unique(column: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L226)

**매개변수:**

column (`str`) : 열 이름 ([column_names](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict.column_names)로 모든 열 이름을 나열합니다)

**반환값:** Dict[`str`, `list`]

주어진 열의 고유 요소 사전.

각 split에 대해 컬럼의 고유 요소 목록을 반환합니다.

이것은 저수준 백엔드에서 구현되어 있어 매우 빠릅니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.unique("label")
{'test': [1, 0], 'train': [1, 0], 'validation': [1, 0]}
```

#### cleanup_cache_files[[datasets.DatasetDict.cleanup_cache_files]]

```python
cleanup_cache_files()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L250)

**반환값:**

각 split별로 제거된 파일의 수를 나타내는 `Dict`

현재 사용 중인 캐시 파일이 있는 경우를 제외하고, 데이터셋 캐시 디렉터리의 모든 캐시 파일을 정리합니다. 이 명령을 실행할 때 다른 프로세스가 다른 캐시 파일을 사용 중이지 않은지 주의하세요.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cleanup_cache_files()
{'test': 0, 'train': 0, 'validation': 0}
```

#### map[[datasets.DatasetDict.map]]

```python
map(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, with_rank: bool = False, with_split: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, drop_last_batch: bool = False, remove_columns: typing.Union[str, list[str], NoneType] = None, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = None, writer_batch_size: typing.Optional[int] = 1000, features: typing.Optional[datasets.features.features.Features] = None, disable_nullable: bool = False, fn_kwargs: typing.Optional[dict] = None, num_proc: typing.Optional[int] = None, desc: typing.Optional[str] = None, try_original_type: typing.Optional[bool] = True, on_mixed_types: typing.Optional[typing.Literal['use_json']] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L814)

**매개변수:**

function (`callable`) : 다음 서명 중 하나를 가져야 합니다: - `batched=False`이고 `with_indices=False`인 경우 `function(example: Dict[str, Any]) -> Dict[str, Any]` - `batched=False`이고 `with_indices=True`인 경우 `function(example: Dict[str, Any], indices: int) -> Dict[str, Any]` - `batched=True`이고 `with_indices=False`인 경우 `function(batch: Dict[str, list]) -> Dict[str, list]` - `batched=True`이고 `with_indices=True`인 경우 `function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]` 고급 사용법에 따라 함수는 `pyarrow.Table`도 반환할 수 있습니다. 함수가 비동기(asynchronous)인 경우 `map`은 함수를 병렬로 실행합니다. 또한 함수가 아무것도(`None`) 반환하지 않는 경우 `map`은 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면 기본 항등 함수 `lambda x: x`를 사용합니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx): ...`여야 합니다.

with_rank (`bool`, 기본값 `False`) : `function`에 프로세스 랭크를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example[, idx], rank): ...`여야 합니다.

with_split (`bool`, 기본값 `False`) : `function`에 프로세스 분할을 제공합니다. 이 경우 `function`의 시그니처는 `def function(example[, idx], split): ...`여야 합니다.

input_columns (`[Union[str, list[str]]]`, *선택 사항*, 기본값 `None`) : `function`에 위치 인수로 전달될 열입니다. `None`인 경우, 모든 포맷된 열에 대한 딕셔너리가 하나의 인수로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 배치별로 제공되는 예제의 수입니다. `batch_size <= 0` 또는 `batch_size == None`이면 전체 데이터셋을 단일 배치로 `function`에 제공합니다.

drop_last_batch (`bool`, 기본값 `False`) : batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부.

remove_columns (`[Union[str, list[str]]]`, *선택 사항*, 기본값 `None`) : 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 `function`의 출력으로 예시를 업데이트하기 전에 제거되므로, `function`이 `remove_columns`에 포함된 이름의 컬럼을 추가하는 경우 이러한 컬럼은 유지됩니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

cache_file_names (`[Dict[str, str]]`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 `cache_file_name` 하나를 제공해야 합니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기(write operation)의 한 번의 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회(lookup) 횟수가 줄고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

features (`[datasets.Features]`, *선택 사항*, 기본값 `None`) : 자동 생성된 대신 특정 [Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)를 사용하여 캐시 파일을 저장합니다.

disable_nullable (`bool`, 기본값 `False`) : 테이블에서 null 값을 허용하지 않습니다.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자

num_proc (`int`, *선택 사항*, 기본값 `None`) : 멀티프로세싱에 사용할 프로세스 수입니다. - `None` 또는 `0`인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다. - `1`보다 큰 경우, 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 `map()`에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).

desc (`str`, *선택 사항*, 기본값 `None`) : 예제를 매핑하는 동안 진행률 바와 함께 표시될 의미 있는 설명입니다.

try_original_type (`Optional[bool]`, 기본값 `True`) : 원본 열의 타입을 유지하려고 시도합니다 (예: int32 -> int32). 항상 새로운 타입을 추론하려면 False로 설정하세요.

on_mixed_types (`Literal["use_json"]`, *선택 사항*, 기본값 `None`) : "use_json"인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드, 즉 혼합 타입 필드에 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다. 이를 통해 문자열/정수/실수 혼합 리스트나 임의의 값 타입을 가진 딕셔너리를 로드할 수 있습니다.

map은 테이블의 모든 예시(개별 또는 배치)에 함수를 적용하여 테이블을 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 이 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

`batched` 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

- `False`인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 `{"text": "Hello there !"}`과 같습니다.
- `True`이고 `batch_size`가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 `{"text": ["Hello there !"]}`입니다.
- `True`이고 `batch_size`가 `n > 1`인 경우, 이 함수는 `n`개의 예시로 구성된 배치(batch)를 입력으로 받아 `n`개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 `n`개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 `n`개의 예시로 구성된 배치는 `{"text": ["Hello there !"] * n}`입니다.

함수가 비동기(asynchronous)인 경우, `map`은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds["train"][0:3]["text"]
['Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'Review: effective but too-tepid biopic']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)
```

#### 필터[[datasets.DatasetDict.filter]]

```python
filter(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, with_rank: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = None, writer_batch_size: typing.Optional[int] = 1000, fn_kwargs: typing.Optional[dict] = None, num_proc: typing.Optional[int] = None, desc: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L986)

**매개변수:**

function (`Callable`) : 다음 서명 중 하나를 가진 Callable: - `batched=False`이고 `with_indices=False`이며 `with_rank=False`인 경우 `function(example: Dict[str, Any]) -> bool` - `batched=False`이고 `with_indices=True`이거나 `with_rank=True`인 경우 (각각 추가 인자 하나) `function(example: Dict[str, Any], *extra_args) -> bool` - `batched=True`이고 `with_indices=False`이며 `with_rank=False`인 경우 `function(batch: Dict[str, list]) -> list[bool]` - `batched=True`이고 `with_indices=True`이거나 `with_rank=True`인 경우 (각각 추가 인자 하나) `function(batch: Dict[str, list], *extra_args) -> list[bool]` 함수가 제공되지 않으면 항상 `True`를 반환하는 함수 `lambda x: True`가 기본값으로 사용됩니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx[, rank]): ...`여야 합니다.

with_rank (`bool`, 기본값 `False`) : `function`에 프로세스 랭크를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example[, idx], rank): ...`여야 합니다.

input_columns (`[Union[str, list[str]]]`, *선택 사항*, 기본값 `None`) : `function`에 위치 인수로 전달될 열입니다. `None`인 경우, 모든 포맷된 열에 대한 딕셔너리가 하나의 인수로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 배치별로 제공되는 예시 수입니다. `batch_size <= 0` 또는 `batch_size == None`이면 전체 데이터셋을 단일 배치로 `function`에 제공합니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

cache_file_names (`[Dict[str, str]]`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 `cache_file_name` 하나를 제공해야 합니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자

num_proc (`int`, *선택 사항*, 기본값 `None`) : 멀티프로세싱에 사용할 프로세스 수입니다. - `None` 또는 `0`인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다. - `1`보다 큰 경우, 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 `map()`에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).

desc (`str`, *선택 사항*, 기본값 `None`) : 예시를 필터링하는 동안 진행률 바와 함께 표시될 의미 있는 설명입니다.

filter 함수를 테이블의 모든 요소에 배치별로 적용하고, 필터 함수에 따라 예제가 포함되도록 테이블을 업데이트합니다. 이 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.filter(lambda x: x["label"] == 1)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 4265
    })
    validation: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
})
```

#### sort[[datasets.DatasetDict.sort]]

```python
sort(column_names: typing.Union[str, collections.abc.Sequence[str]], reverse: typing.Union[bool, collections.abc.Sequence[bool]] = False, null_placement: str = 'at_end', keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, indices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = None, writer_batch_size: typing.Optional[int] = 1000)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1151)

**매개변수:**

column_names (`Union[str, Sequence[str]]`) : 정렬할 열 이름.

reverse (`Union[bool, Sequence[bool]]`, 기본값 `False`) : `True`인 경우 오름차순 대신 내림차순으로 정렬합니다. 단일 bool 값을 제공하는 경우 해당 값이 모든 열 이름의 정렬에 적용됩니다. 그렇지 않으면 column_names와 동일한 길이와 순서를 가진 bool 목록을 제공해야 합니다.

null_placement (`str`, 기본값 `at_end`) : `at_start` 또는 `first`인 경우 `None` 값을 앞에, `at_end` 또는 `last`인 경우 뒤에 배치합니다

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 쓰는 대신 정렬된 인덱스를 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : 정렬된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

indices_cache_file_names (`[Dict[str, str]]`, *선택 사항*, 기본값 `None`) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 `cache_file_name` 하나를 제공해야 합니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기(write operation)의 한 번의 쓰기 작업당 행 수입니다. 값이 높을수록 캐시 파일 크기가 작아지고, 값이 낮을수록 임시 메모리 사용량이 줄어듭니다.

하나 또는 여러 열에 따라 정렬된 새로운 데이터셋을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes')
>>> ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['train']['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
```

#### shuffle[[datasets.DatasetDict.shuffle]]

```python
shuffle(seeds: typing.Union[int, dict[str, typing.Optional[int]], NoneType] = None, seed: typing.Optional[int] = None, generators: typing.Optional[dict[str, numpy.random._generator.Generator]] = None, keep_in_memory: bool = False, load_from_cache_file: typing.Optional[bool] = None, indices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = None, writer_batch_size: typing.Optional[int] = 1000)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1218)

**매개변수:**

seeds (`Dict[str, int]` 또는 `int`, *선택 사항*) : `generator=None`인 경우 기본 BitGenerator를 초기화할 시드입니다. `None`이면 OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. `int` 또는 `array_like[ints]`가 전달되면 SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다. 데이터셋 사전에 데이터셋별로 `seed` 하나를 제공할 수 있습니다.

seed (`int`, *선택 사항*) : `generator=None`인 경우 기본 BitGenerator를 초기화할 시드입니다. seeds의 별칭입니다(둘 다 제공되면 `ValueError`가 발생함).

generators (`Dict[str, *optional*, np.random.Generator]`) : 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. `generator=None`(기본값)인 경우, NumPy의 기본 BitGenerator(PCG64)인 `np.random.default_rng`를 사용합니다. 데이터셋 딕셔너리의 각 데이터셋마다 `generator`를 하나씩 제공해야 합니다.

keep_in_memory (`bool`, 기본값은 `False`) : 캐시 파일에 기록하는 대신 데이터셋을 메모리에 유지합니다.

load_from_cache_file (`Optional[bool]`, 캐싱이 활성화된 경우 기본값은 `True`) : `function`의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.

indices_cache_file_names (`Dict[str, str]`, *선택 사항*) : 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 `cache_file_name` 하나를 제공해야 합니다.

writer_batch_size (`int`, 기본값 `1000`) : 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 적절한 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄어들고, 값이 낮을수록 `map` 실행 중 임시 메모리 사용량이 줄어듭니다.

행이 섞인 새로운 Dataset을 생성합니다.

변환은 dataset dictionary의 모든 dataset에 적용됩니다.

현재 shuffling은 numpy random generator를 사용합니다. 사용할 NumPy BitGenerator를 제공하거나, NumPy의 기본 random generator(PCG64)를 초기화할 seed를 지정할 수 있습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"]["label"][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds["train"]["label"][:10]
[0, 1, 0, 1, 0, 0, 0, 0, 0, 0]
```

#### set_format[[datasets.DatasetDict.set_format]]

```python
set_format(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L571)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__`가 python 객체를 반환함을 의미합니다(기본값).

columns (`list[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 False) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`__getitem__` 반환 형식(타입 및 열)을 설정합니다. 이 형식은 데이터셋 사전의 모든 데이터셋에 대해 설정됩니다.

`set_format` 호출 후 `map`을 호출할 수 있습니다. `map`은 새로운 컬럼을 추가할 수 있으므로, 포맷된 컬럼 목록이 업데이트됩니다. 이 경우, 데이터셋에 `map`을 적용하여 새로운 컬럼을 추가하면 이 컬럼도 포맷됩니다:

`new formatted columns = (all columns - previously unformatted columns)`

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
```

#### reset_format[[datasets.DatasetDict.reset_format]]

```python
reset_format()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L622)

`__getitem__`의 반환 형식을 Python 객체 및 모든 컬럼으로 재설정합니다. 이 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

`self.set_format()`와 동일합니다

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
```

#### formatted_as[[datasets.DatasetDict.formatted_as]]

```python
formatted_as(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L531)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__`가 python 객체를 반환함을 의미합니다(기본값).

columns (`list[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 False) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`with` 문장에서 사용됩니다. `__getitem__` 반환 형식(타입 및 열)을 설정합니다. 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

#### with_format[[datasets.DatasetDict.with_format]]

```python
with_format(type: typing.Optional[str] = None, columns: typing.Optional[list] = None, output_all_columns: bool = False, **format_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L683)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 `__getitem__`가 python 객체를 반환함을 의미합니다(기본값).

columns (`list[str]`, *선택 사항*) : 출력에서 포맷할 열. `None`은 `__getitem__`가 모든 열을 반환함을 의미합니다(기본값).

output_all_columns (`bool`, 기본값 `False`) : 출력에 포맷되지 않은 컬럼도 (python 객체로) 함께 유지합니다.

- ****format_kwargs** (추가 키워드 인자) : `np.array`, `torch.tensor` 또는 `tensorflow.ragged.constant`와 같은 변환 함수에 전달되는 키워드 인자입니다.

`__getitem__` 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. `__getitem__`를 사용할 때 배치 포맷팅에 `type`(예: "numpy") 형식이 사용됩니다. 이 형식은 데이터셋 딕셔너리의 모든 데이터셋에 대해 설정됩니다.

[with_transform()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.with_transform)를 사용하여 포맷팅에 커스텀 트랜스포메이션을 사용하는 것도 가능합니다.

[set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict.set_format)과 달리, `with_format`은 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체를 포함하는 새로운 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict) 객체를 반환합니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds["train"][0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}
```

#### with_transform[[datasets.DatasetDict.with_transform]]

```python
with_transform(transform: typing.Optional[typing.Callable], columns: typing.Optional[list] = None, output_all_columns: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L760)

**매개변수:**

transform (`Callable`, *선택 사항*) : 사용자가 정의한 포맷 변환으로, [set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)로 정의된 포맷을 대체합니다. 포맷 함수는 배치(딕셔너리 형태)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 `__getitem__`에서 객체를 반환하기 직전에 적용됩니다.

columns (`list[str]`, *선택 사항*) : 출력에서 포맷할 열입니다. 지정된 경우, 변환의 입력 배치에는 해당 열만 포함됩니다.

output_all_columns (`bool`, 기본값 False) : 출력에 포맷되지 않은 컬럼도 포함할지 여부 (python 객체로 유지). `True`로 설정하면, 변환 결과와 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 `__getitem__`의 반환 형식을 설정합니다. `__getitem__`이 호출될 때 배치에 대해 이 변환이 즉시 적용됩니다. 데이터셋 사전의 모든 데이터셋에 대해 변환이 설정됩니다.

[set_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.set_format)와 마찬가지로, [reset_format()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.reset_format)을 사용하여 초기화할 수 있습니다.

`set_transform()`과 달리, `with_transform`은 새로운 [Dataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset) 객체를 포함하는 새로운 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict) 객체를 반환합니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example['text'], truncation=True, padding=True, return_tensors="pt")
>>> ds = ds.with_transform(encode)
>>> ds["train"][0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101,  1103,  2067,  1110, 17348,  1106,  1129,  1103,  6880,  1432,
        112,   188,  1207,   107, 14255,  1389,   107,  1105,  1115,  1119,
        112,   188,  1280,  1106,  1294,   170, 24194,  1256,  3407,  1190,
        170, 11791,  5253,   188,  1732,  7200, 10947, 12606,  2895,   117,
        179,  7766,   118,   172, 15554,  1181,  3498,  6961,  3263,  1137,
        188,  1566,  7912, 14516,  6997,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0])}
```

#### flatten[[datasets.DatasetDict.flatten]]

```python
flatten(max_depth = 16)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L193)

각 split의 Apache Arrow Table을 flatten합니다(중첩된 feature는 flatten됩니다). struct 타입인 각 열은 struct 필드별로 하나의 열로 flatten됩니다. 다른 열은 변경되지 않습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad")
>>> ds["train"].features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers.text': List(Value('string')),
 'answers.answer_start': List(Value('int32'))}
>>> ds.flatten()
DatasetDict({
    train: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 87599
    })
    validation: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 10570
    })
})
```

#### cast[[datasets.DatasetDict.cast]]

```python
cast(features: Features)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L274)

**매개변수:**

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)) : 데이터셋을 변환할 새 features입니다. features의 필드 이름과 순서는 현재 컬럼 이름과 일치해야 합니다. 데이터의 타입도 서로 변환 가능해야 합니다. `string` <-> `ClassLabel`와 같이 단순하지 않은 변환의 경우, [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict.map)을 사용하여 데이터셋을 업데이트해야 합니다.

데이터셋을 새로운 기능(feature) 집합으로 캐스팅합니다. 이 변환은 데이터셋 딕셔너리의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}
```

#### cast_column[[datasets.DatasetDict.cast_column]]

```python
cast_column(column: str, feature)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L306)

**매개변수:**

column (`str`) : 컬럼 이름.

feature (`Feature`) : 대상 특징.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}
```

#### remove_columns[[datasets.DatasetDict.remove_columns]]

```python
remove_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L335)

**매개변수:**

column_names (`Union[str, list[str]]`) : 제거할 열의 이름.

**반환값:** [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋의 각 split에서 하나 이상의 column을 제거하고 해당 column에 연관된 features도 함께 제거합니다.

변환은 데이터셋 사전의 모든 분할에 적용됩니다.

`remove_columns`을 사용하여 [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict.map)으로 컬럼을 제거할 수도 있지만, 현재 메서드는 나머지 컬럼의 데이터를 복사하지 않으므로 더 빠릅니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.remove_columns("label")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})
```

#### rename_column[[datasets.DatasetDict.rename_column]]

```python
rename_column(original_column_name: str, new_column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L377)

**매개변수:**

original_column_name (`str`) : 이름이 변경될 열의 이름.

new_column_name (`str`) : 열의 새 이름.

dataset의 컬럼을 이름 변경하고, 원래 컬럼에 연결된 features를 새 컬럼 이름 아래로 이동합니다. 이 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

`remove_columns`를 사용하여 [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict.map)으로 컬럼 이름을 변경할 수도 있지만, 현재 방법은 다음과 같습니다:
- 원래 특징을 새 열 이름 아래로 이동하는 작업을 처리합니다.
- 새 데이터셋으로 데이터를 복사하지 않으므로 훨씬 빠릅니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.rename_column("label", "label_new")
DatasetDict({
    train: Dataset({
        features: ['text', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
})
```

#### rename_columns[[datasets.DatasetDict.rename_columns]]

```python
rename_columns(column_mapping: dict)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L425)

**매개변수:**

column_mapping (`Dict[str, str]`) : 컬럼을 새 이름으로 변경할 매핑입니다.

**반환값:** [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

열 이름이 변경된 데이터셋의 복사본입니다.

… 데이터셋의 여러 열 이름을 변경하고, 원래 열에 연결된 기능을 새 열 이름 아래로 이동합니다. 이 변환은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
DatasetDict({
    train: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
})
```

#### select_columns[[datasets.DatasetDict.select_columns]]

```python
select_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L463)

**매개변수:**

column_names (`Union[str, list[str]]`) : 유지할 열의 이름.

데이터셋의 각 split에서 하나 이상의 column을 선택하고 해당 column과 연관된 features를 지정합니다.

변환은 데이터셋 사전의 모든 분할에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.select_columns("text")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})
```

#### class_encode_column[[datasets.DatasetDict.class_encode_column]]

```python
class_encode_column(column: str, include_nulls: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L499)

**매개변수:**

column (`str`) : 캐스팅할 열의 이름.

include_nulls (`bool`, 기본값 `False`) : 클래스 라벨에 null 값을 포함할지 여부입니다. `True`인 경우, null 값은 `"None"` 클래스 라벨로 인코딩됩니다.

주어진 컬럼을 [ClassLabel](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.ClassLabel)으로 캐스팅하고 테이블을 업데이트합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq")
>>> ds["train"].features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column("answer")
>>> ds["train"].features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}
```

#### push_to_hub[[datasets.DatasetDict.push_to_hub]]

```python
push_to_hub(repo_id: str, config_name: str = 'default', set_default: typing.Optional[bool] = None, data_dir: typing.Optional[str] = None, commit_message: typing.Optional[str] = None, commit_description: typing.Optional[str] = None, private: typing.Optional[bool] = None, token: typing.Optional[str] = None, revision: typing.Optional[str] = None, create_pr: typing.Optional[bool] = False, max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[dict[str, int]] = None, embed_external_files: bool = True, num_proc: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1623)

**매개변수:**

repo_id (`str`) : 다음 형식의 저장소 ID: `<user>/<dataset_name>` 또는 `<org>/<dataset_name>`. 로그인한 사용자의 네임스페이스를 기본값으로 사용하는 `<dataset_name>`도 허용됩니다. 또한 버킷 내부의 위치일 수도 있으며, 예: `buckets/<user_or_org>/<bucket_name>/...`

config_name (`str`) : 데이터셋의 구성 이름. 기본값은 "default"입니다.

set_default (`bool`, *선택 사항*) : 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 "default"라는 이름의 구성입니다.

data_dir (`str`, *선택 사항*) : 업로드된 데이터 파일을 포함할 디렉터리 이름. "default"와 다르면 `config_name`을 기본값으로 사용하고, 그렇지 않으면 "data"를 기본값으로 사용합니다.

commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지입니다. 기본값은 `"Upload dataset"`입니다.

commit_description (`str`, *선택 사항*) : 생성될 커밋의 설명입니다. PR이 생성되는 경우(`create_pr`가 True인 경우) PR의 설명이기도 합니다.

private (`bool`, *선택 사항*) : 저장소를 비공개로 만들지 여부입니다. `None`(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 이미 저장소가 존재하면 이 값은 무시됩니다.

token (`str`, *선택 사항*) : Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 `hf auth login`으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.

revision (`str`, *선택 사항*) : 업로드된 파일을 푸시할 브랜치입니다. 기본값은 `"main"` 브랜치입니다.

create_pr (`bool`, *선택 사항*, 기본값 `False`) : 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.

max_shard_size (`int` 또는 `str`, *선택 사항*, 기본값은 `"500MB"`) : 허브에 업로드할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예: `"500MB"` 또는 `"1GB"`)가 따라와야 합니다.

num_shards (`Dict[str, int]`, *선택 사항*) : 작성할 샤드 수입니다. 기본적으로 샤드 수는 `max_shard_size`에 따라 결정됩니다. 사전(dict)을 사용하여 각 split별로 다른 num_shards를 정의할 수 있습니다.

embed_external_files (`bool`, 기본값 `True`) : 샤드에 파일 바이트를 임베드할지 여부입니다. 특히, push 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다. - [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 및 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image)의 경우 로컬 경로 정보를 제거하고 Parquet 파일에 파일 내용을 임베드합니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 임베딩할 샘플이나 미디어 파일이 많을 때 유용합니다. hf_xet, 즉 HF로의 빠른 업로드를 위한 rust 클라이언트와 함께 작동하도록 "spawn" 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

**반환값:**

huggingface_hub.CommitInfo

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)를 Parquet 데이터셋으로 hub에 업로드합니다. [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)는 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

각 데이터셋 분할은 독립적으로 push됩니다. push된 데이터셋은 원래의 분할 이름을 유지합니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image) 또는 [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. `embed_external_files`를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

```python
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})
```

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

```python
>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")
```

#### save_to_disk[[datasets.DatasetDict.save_to_disk]]

```python
save_to_disk(dataset_dict_path: typing.Union[str, bytes, os.PathLike], max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[dict[str, int]] = None, num_proc: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1301)

**매개변수:**

dataset_dict_path (`path-like`) : dataset dict가 저장될 dataset dict 디렉터리의 Path (예: `dataset/train`) 또는 원격 URI (예: `s3://my-bucket/dataset/train`).

max_shard_size (`int` 또는 `str`, *선택 사항*, 기본값 `"500MB"`) : 파일시스템에 저장할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현하는 경우, 숫자 뒤에 단위(예: `"50MB"`)가 따라야 합니다.

num_shards (`Dict[str, int]`, *선택 사항*) : 기록할 샤드 수입니다. 기본적으로 샤드 수는 `max_shard_size`와 `num_proc`에 따라 결정됩니다. 데이터셋 사전의 각 데이터셋에 대해 샤드 수를 제공해야 합니다. 각 스플릿별로 다른 num_shards를 정의하려면 사전을 사용하세요.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

`fsspec.spec.AbstractFileSystem`를 사용하여 데이터셋 딕셔너리를 파일 시스템에 저장합니다.

[Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image), [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio), [Video](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Video) 데이터의 경우:

모든 Image(), Audio(), Video() 데이터는 arrow 파일에 저장됩니다. 경로나 URL을 저장하려면 Value("string") 타입을 사용하세요.

예:

```python
>>> dataset_dict.save_to_disk("path/to/dataset/directory")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", num_shards={"train": 1024, "test": 8})
```

#### load_from_disk[[datasets.DatasetDict.load_from_disk]]

```python
load_from_disk(dataset_dict_path: typing.Union[str, bytes, os.PathLike], keep_in_memory: typing.Optional[bool] = None, storage_options: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1375)

**매개변수:**

dataset_dict_path (`path-like`) : dataset dict가 로드될 dataset dict 디렉터리의 Path (예: `"dataset/train"`) 또는 원격 URI (예: `"s3//my-bucket/dataset/train"`).

keep_in_memory (`bool`, 기본값은 `None`) : 데이터셋을 메모리에 복사할지 여부입니다. `None`인 경우, `datasets.config.IN_MEMORY_MAX_SIZE`를 0이 아닌 값으로 설정하여 명시적으로 활성화하지 않는 한 데이터셋은 메모리에 복사되지 않습니다. 자세한 내용은 [성능 개선](../cache#improve-performance) 섹션을 참조하세요.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

`fsspec.spec.AbstractFileSystem`를 사용하여 파일 시스템에서 이전에 `save_to_disk`로 저장된 데이터셋을 로드합니다.

예:

```py
>>> ds = load_from_disk('path/to/dataset/directory')
```

#### from_csv[[datasets.DatasetDict.from_csv]]

```python
from_csv(path_or_paths: dict, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1435)

**매개변수:**

path_or_paths (`dict` of path-like) : CSV 파일의 경로(들).

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (str, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

- ****kwargs** (추가 키워드 인자) : `pandas.read_csv`에 전달할 키워드 인자입니다.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

CSV 파일에서 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)를 생성합니다.

예:

```py
>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_csv({'train': 'path/to/dataset.csv'})
```

#### from_json[[datasets.DatasetDict.from_json]]

```python
from_json(path_or_paths: dict, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1478)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : JSON Lines 파일의 경로(들).

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (str, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

- ****kwargs** (추가 키워드 인자) : `JsonConfig`에 전달할 키워드 인자입니다.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

JSON Lines 파일에서 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)를 생성합니다.

예:

```py
>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_json({'train': 'path/to/dataset.json'})
```

#### from_parquet[[datasets.DatasetDict.from_parquet]]

```python
from_parquet(path_or_paths: dict, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, columns: typing.Optional[list[str]] = None, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1521)

**매개변수:**

path_or_paths (`dict` of path-like) : CSV 파일의 경로(들).

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

columns (`list[str]`, *선택 사항*) : `None`이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 'a'는 'a.b', 'a.c', 'a.d.e'를 선택합니다.

- ****kwargs** (추가 키워드 인자) : `ParquetConfig`에 전달할 키워드 인자입니다.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

Parquet 파일에서 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)를 생성합니다.

예:

```py
>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_parquet({'train': 'path/to/dataset/parquet'})
```

#### from_text[[datasets.DatasetDict.from_text]]

```python
from_text(path_or_paths: dict, features: typing.Optional[datasets.features.features.Features] = None, cache_dir: str = None, keep_in_memory: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1570)

**매개변수:**

path_or_paths (`dict` of path-like) : 텍스트 파일의 경로입니다.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

cache_dir (`str`, *선택 사항*, 기본값 `"~/.cache/huggingface/datasets"`) : 데이터를 캐시할 디렉터리.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

- ****kwargs** (추가 키워드 인자) : `TextConfig`에 전달할 키워드 인자입니다.

**반환값:**

[DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)

텍스트 파일에서 [DatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetDict)를 생성합니다.

예:

```py
>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_text({'train': 'path/to/dataset.txt'})
```

## IterableDataset[[datasets.IterableDataset]]

기본 클래스 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)은 Python 생성기로 뒷받침되는 반복 가능한 Dataset을 구현합니다.

#### datasets.IterableDataset[[datasets.IterableDataset]]

```python
datasets.IterableDataset(ex_iterable: _BaseExamplesIterable, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, formatting: typing.Optional[datasets.iterable_dataset.FormattingConfig] = None, distributed: typing.Optional[datasets.iterable_dataset.DistributedConfig] = None, token_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L2690)

iterable에 기반한 Dataset입니다.

#### from_file[[datasets.IterableDataset.from_file]]

```python
from_file(filename: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3188)

**매개변수:**

filename (`str`) : 데이터셋의 파일 이름.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

filename의 Arrow 테이블에서 IterableDataset을(를) 생성합니다.

#### from_pandas[[datasets.IterableDataset.from_pandas]]

```python
from_pandas(df: DataFrame, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, preserve_index: typing.Optional[bool] = None, num_shards: typing.Optional[int] = 1)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3204)

**매개변수:**

df (`pandas.DataFrame`) : 데이터셋을 포함하는 데이터프레임.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

preserve_index (`bool`, *선택 사항*) : 인덱스를 결과 Dataset의 추가 열로 저장할지 여부입니다. 기본값인 `None`은 `RangeIndex`를 제외하고 인덱스를 열로 저장하며, `RangeIndex`는 메타데이터로만 저장됩니다. 인덱스를 반드시 열로 저장하려면 `preserve_index=True`를 사용하세요.

num_shards (`int`, 기본값 `1`) : 반복 가능한 데이터셋을 인스턴스화할 때 정의할 샤드 수입니다. 이는 특히 큰 데이터셋에서 올바르게 셔플링할 수 있도록 하고, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 이를 가능하게 하는 데 특히 유용합니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

`pandas.DataFrame`를 `pyarrow.Table`로 변환하여 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

결과 Arrow Table의 열 유형은 DataFrame의 `pandas.Series` dtype에서 추론됩니다. object가 아닌 Series의 경우, NumPy dtype이 해당 Arrow 유형으로 변환됩니다. `object`의 경우, 이 Series에 포함된 Python 객체를 살펴서 데이터 유형을 추측해야 합니다.

`object` dtype의 Series는 항상 의미 있는 Arrow 타입으로 이어질 만큼 충분한 정보를 담고 있지 않습니다. DataFrame의 길이가 0이거나 Series에 `None/nan` 객체만 포함된 경우와 같이 타입을 추론할 수 없는 경우, 타입은 `null`로 설정됩니다. 이 동작은 명시적인 features를 구성하여 이 함수에 전달함으로써 방지할 수 있습니다.

Important: a dataset created with from_pandas() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it on disk and reload using e.g. to_parquet / from_parquet.

예:

```py
>>> ds = IterableDataset.from_pandas(df)
```

#### from_dict[[datasets.IterableDataset.from_dict]]

```python
from_dict(mapping: dict, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, num_shards: typing.Optional[int] = 1)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3316)

**매개변수:**

mapping (`Mapping`) : 문자열에서 배열 또는 Python 리스트로의 매핑.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

info (`DatasetInfo`, *선택 사항*) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, *선택 사항*) : 데이터셋 분할의 이름.

num_shards (`int`, 기본값 `1`) : 반복 가능한 데이터셋을 인스턴스화할 때 정의할 샤드 수입니다. 이는 특히 큰 데이터셋에서 올바르게 셔플링할 수 있도록 하고, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 이를 가능하게 하는 데 특히 유용합니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

`dict`을 `pyarrow.Table`로 변환하여 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

Important: a dataset created with from_dict() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. to_parquet / from_parquet.

#### from_list[[datasets.IterableDataset.from_list]]

```python
from_list(mapping: list, features: typing.Optional[datasets.features.features.Features] = None, info: typing.Optional[datasets.info.DatasetInfo] = None, split: typing.Optional[datasets.splits.NamedSplit] = None, num_shards: typing.Optional[int] = 1)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3353)

**매개변수:**

mapping (`List[dict]`) : 문자열에서 행 값으로의 매핑 목록.

features (`Features`, 선택 사항): Dataset의 features입니다.

info (`DatasetInfo`, 선택 사항) : 설명, 인용 정보 등 데이터셋 정보

split (`NamedSplit`, 선택 사항) : 데이터셋 분할의 이름.

num_shards (`int`, 기본값 `1`) : 반복 가능한 데이터셋을 인스턴스화할 때 정의할 샤드 수입니다. 이는 특히 큰 데이터셋에서 올바르게 셔플링할 수 있도록 하고, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 이를 가능하게 하는 데 특히 유용합니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

dict 목록을 `pyarrow.Table`로 변환하여 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

features에 전달된 값과 관계없이, 첫 번째 항목의 키가 데이터셋 열을 결정하는 데 사용됩니다.

Important: a dataset created with from_list() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. from_parquet / to_parquet.

#### from_generator[[datasets.IterableDataset.from_generator]]

```python
from_generator(generator: typing.Callable, features: typing.Optional[datasets.features.features.Features] = None, gen_kwargs: typing.Optional[dict] = None, split: NamedSplit = NamedSplit('train'))
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3090)

**매개변수:**

generator (`Callable`) : 예시를 `yields`하는 생성기 함수.

features (`Features`, *선택 사항*) : Dataset의 features입니다.

gen_kwargs(`dict`, *선택 사항*) : `generator` 콜러블에 전달할 키워드 인자입니다. `gen_kwargs`에 샤드 목록을 전달하여 샤드된 반복 가능 데이터셋을 정의할 수 있습니다. 이를 통해 셔플링을 개선하고 여러 워커로 데이터셋을 반복할 때 활용할 수 있습니다.

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), 기본값은 `Split.TRAIN`) : 데이터셋에 할당할 분할 이름.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

제너레이터에서 Iterable Dataset을 생성합니다.

예:

```py
>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = IterableDataset.from_generator(gen)
```

```py
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = IterableDataset.from_generator(gen, gen_kwargs={"shards": shards})
>>> ds = ds.shuffle(seed=42, buffer_size=10_000)  # shuffles the shards order + uses a shuffle buffer
>>> from torch.utils.data import DataLoader
>>> dataloader = DataLoader(ds.with_format("torch"), num_workers=4)  # give each worker a subset of 32/4=8 shards
```

#### remove_columns[[datasets.IterableDataset.remove_columns]]

```python
remove_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4343)

**매개변수:**

column_names (`Union[str, List[str]]`) : 제거할 열의 이름.

**반환값:** `IterableDataset`

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연관된 features를 제거합니다. 데이터셋을 반복할 때 예제에 대해 제거가 즉시(on-the-fly) 수행됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.remove_columns("label")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### select_columns[[datasets.IterableDataset.select_columns]]

```python
select_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4378)

**매개변수:**

column_names (`Union[str, List[str]]`) : 선택할 열의 이름.

**반환값:** `IterableDataset`

선택된 컬럼을 가진 데이터셋 객체의 복사본입니다.

데이터셋에서 하나 이상의 열과 해당 열에 연결된 특징을 선택합니다. 선택은 데이터셋을 반복할 때 예제에 대해 실시간으로 수행됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.select_columns("text")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### cast_column[[datasets.IterableDataset.cast_column]]

```python
cast_column(column: str, feature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4428)

**매개변수:**

column (`str`) : 컬럼 이름.

feature (`Feature`) : 대상 특징.

**반환값:** `IterableDataset`

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

```py
>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train", streaming=True)
>>> ds.features
{'audio': Audio(sampling_rate=8000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}
>>> ds = ds.cast_column("audio", Audio(sampling_rate=16000))
>>> ds.features
{'audio': Audio(sampling_rate=16000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}
```

#### cast[[datasets.IterableDataset.cast]]

```python
cast(features: Features)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4474)

**매개변수:**

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)) : 데이터셋을 변환할 새 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터 유형도 서로 변환 가능해야 합니다. `string` <-> `ClassLabel`와 같이 단순하지 않은 변환의 경우, [map()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Dataset.map)을 사용하여 Dataset을 업데이트해야 합니다.

**반환값:** `IterableDataset`

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features["label"] = ClassLabel(names=["bad", "good"])
>>> new_features["text"] = Value("large_string")
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}
```

#### decode[[datasets.IterableDataset.decode]]

```python
decode(enable: bool = True, num_threads: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4520)

**매개변수:**

enable (`bool`, 기본값 `True`) : features 디코딩을 활성화하거나 비활성화합니다.

num_threads (`int`, *선택 사항*, 기본값 `None`) : features 디코딩을 위한 멀티스레딩을 활성화합니다. [load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)는 HF에서 디코딩 가능한 features를 가진 dataset을 스트리밍할 때 기본적으로 몇 개의 스레드를 사용합니다. 기본적으로 `num_threads`는 디코딩이 필요한 feature가 하나 이상이면 32로, 그렇지 않으면 0으로 설정됩니다.

**반환값:** `IterableDataset`

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

오디오, 이미지, 비디오에 대한 데이터셋 기능 디코딩을 활성화하거나 비활성화합니다.

활성화(기본값)되면 미디어 유형이 디코딩됩니다:

* audio -> "array", "sampling_rate", "path"의 dict
* image -> PIL.Image
* video -> torchcodec.decoders.VideoDecoder

`num_threads`를 사용하여 멀티스레딩을 활성화할 수 있습니다. 이 경우 각 미디어 파일은 워커 스레드에서 읽히고 디코딩되어 연속된 예시의 네트워크 왕복 시간이 겹치게 됩니다. 이는 원격 데이터 스트리밍 속도를 높이는 데 특히 유용하며, 디코딩 가능한 기능이 있는 원격 데이터셋을 스트리밍할 때 [load_dataset()](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.load_dataset)은 기본적으로 이를 활성화합니다(자세한 내용은 `HF_DATASETS_DECODE_NUM_THREADS` 참조). 로컬 디스크에서 읽은 데이터셋은 빠른 디스크의 로컬 데이터에서 멀티스레딩이 메인 스레드에서 디코딩하는 것보다 느릴 수 있으므로 `num_threads=0`으로 스트리밍됩니다. 예시가 미리 디코딩되므로, 진행 중인 각 스레드는 메모리에 하나의 예시를 유지할 수 있습니다. 메모리 사용량을 줄이려면 `num_threads`를 낮추세요.

디코딩을 비활성화하면 미디어 파일의 경로나 바이트를 반복적으로 처리하되 실제 콘텐츠는 디코딩하지 않는 경우에 유용합니다. 디코딩을 비활성화하려면 `.decode(False)`를 사용할 수 있으며, 이는 모든 Audio, Image, Video 타입에 대해 `decode=False`를 설정하고 `.cast()` 또는 `.cast_column()`을 호출하는 것과 동일합니다.

예:

디코딩 비활성화:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> next(iter(ds))
{'image': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=2048x1024>,
'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'}
>>> ds = ds.decode(False)
>>> ds.features
{'image': Image(mode=None, decode=False, id=None),
'text': Value('string')}
>>> next(iter(ds))
{
  'image': {
    'path': 'hf://datasets/sshh12/planet-textures@69dc4cef7a5c4b2cfe387727ec8ea73d4bff7302/train/textures/0000.png',
    'bytes': None
  },
  'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'
}
```

멀티스레딩으로 스트리밍 속도 향상:

```py
>>> import os
>>> from datasets import load_dataset
>>> from tqdm import tqdm
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> # already threaded by default with 32 threads, but more threads can help going even faster
>>> ds = ds.decode(num_threads=64)
>>> for _ in tqdm(ds):  # 2 times faster !
...     ...
```

#### __iter__[[datasets.IterableDataset.__iter__]]

```python
__iter__()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3035)

#### iter[[datasets.IterableDataset.iter]]

```python
iter(batch_size: int, drop_last_batch: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3056)

**매개변수:**

batch_size (`int`) : yield할 각 배치의 크기.

drop_last_batch (`bool`, 기본값 *False*) : batch_size보다 작은 마지막 배치의 드롭 여부를 결정합니다

크기 *batch_size*의 배치들을 순회합니다.

#### map[[datasets.IterableDataset.map]]

```python
map(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, drop_last_batch: bool = False, remove_columns: typing.Union[str, list[str], NoneType] = None, features: typing.Optional[datasets.features.features.Features] = None, fn_kwargs: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3676)

**매개변수:**

function (`Callable`, *선택 사항*, 기본값은 `None`) : 데이터셋을 반복할 때 예제에 즉시 적용되는 함수입니다. 다음 서명 중 하나를 가져야 합니다:  - `batched=False`이고 `with_indices=False`인 경우 `function(example: Dict[str, Any]) -> Dict[str, Any]` - `batched=False`이고 `with_indices=True`인 경우 `function(example: Dict[str, Any], idx: int) -> Dict[str, Any]` - `batched=True`이고 `with_indices=False`인 경우 `function(batch: Dict[str, List]) -> Dict[str, List]` - `batched=True`이고 `with_indices=True`인 경우 `function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List]`  고급 사용법에 따라 함수는 `pyarrow.Table`를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, `map`은 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(`None`), `map`은 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면 항등 함수(identity function)인 `lambda x: x`를 기본값으로 사용합니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx[, rank]): ...`여야 합니다.

input_columns (`Optional[Union[str, List[str]]]`, 기본값 `None`) : `function`에 위치 인자로 전달할 열입니다. `None`인 경우, 모든 포맷된 열에 대한 dict가 하나의 인자로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 배치별로 제공되는 예시 수. `batch_size <= 0` 또는 `batch_size == None`이면 전체 데이터셋을 단일 배치로 `function`에 제공합니다.

drop_last_batch (`bool`, 기본값 `False`) : batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부.

remove_columns (`[List[str]]`, *선택 사항*, 기본값 `None`) : 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 `function`의 출력으로 예시를 업데이트하기 전에 제거되므로, `function`이 `remove_columns`에 포함된 이름으로 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.

features (`[Features]`, *선택 사항*, 기본값 `None`) : 결과 데이터셋의 Feature 유형.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자.

반복 가능한 데이터셋의 모든 예시에 함수를 적용(개별 또는 배치 단위)하여 예시를 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 데이터셋을 반복할 때 함수가 예시에 즉시(on-the-fly) 적용됩니다.

`batched` 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

- `False`인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 `{"text": "Hello there !"}`과 같습니다.
- `True`이고 `batch_size`가 1인 경우, 이 함수는 1개의 예시로 구성된 배치(1개)를 입력으로 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 {"text": ["Hello there !"]}입니다.
- `True`이고 `batch_size`가 `n` > 1인 경우, 이 함수는 `n`개의 예시로 구성된 배치(batch)를 입력으로 받아 `n`개의 예시로 구성된 배치 또는 임의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 `n`개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 `n`개의 예시로 구성된 배치는 `{"text": ["Hello there !"] * n}`입니다.

함수가 비동기(asynchronous)인 경우, `map`은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수 내에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'Review: effective but too-tepid biopic'}]
```

#### rename_column[[datasets.IterableDataset.rename_column]]

```python
rename_column(original_column_name: str, new_column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4288)

**매개변수:**

original_column_name (`str`) : 이름이 변경될 열의 이름.

new_column_name (`str`) : 열의 새 이름.

**반환값:** `IterableDataset`

열 이름이 변경된 데이터셋의 복사본.

dataset의 컬럼 이름을 변경하고, 원래 컬럼에 연결된 features를 새 컬럼 이름 아래로 이동합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### 필터[[datasets.IterableDataset.filter]]

```python
filter(function: typing.Optional[typing.Callable] = None, with_indices = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, fn_kwargs: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3858)

**매개변수:**

function (`Callable`) : 다음 서명 중 하나를 가진 Callable: - `with_indices=False, batched=False`인 경우 `function(example: Dict[str, Any]) -> bool` - `with_indices=True, batched=False`인 경우 `function(example: Dict[str, Any], indices: int) -> bool` - `with_indices=False, batched=True`인 경우 `function(example: Dict[str, List]) -> List[bool]` - `with_indices=True, batched=True`인 경우 `function(example: Dict[str, List], indices: List[int]) -> List[bool]` 함수가 비동기(asynchronous)인 경우, `filter`는 해당 함수를 병렬로 실행합니다. 함수가 제공되지 않으면 항상 True를 반환하는 함수 `lambda x: True`가 기본값으로 사용됩니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx): ...`여야 합니다.

input_columns (`str` 또는 `List[str]`, *선택 사항*) : `function`에 위치 인수로 전달할 열입니다. `None`인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 전달되는 배치당 예제 수.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자.

필터 함수를 모든 요소에 적용하여 데이터셋이 필터 함수에 따라 예시를 포함하도록 합니다. 필터링은 데이터셋을 반복할 때 실시간으로 수행됩니다.

함수가 비동기(asynchronous)인 경우, `filter`는 최대 1,000개의 동시 호출(구성 가능)까지 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds.take(3))
[{'label': 0, 'movie_review': 'simplistic , silly and tedious .'},
 {'label': 0,
 'movie_review': "it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'movie_review': 'exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]
```

#### shuffle[[datasets.IterableDataset.shuffle]]

```python
shuffle(seed = None, generator: typing.Optional[numpy.random._generator.Generator] = None, buffer_size: int = 1000, max_buffer_input_shards: int = 10)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3961)

**매개변수:**

seed (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 섞는 데 사용할 무작위 시드입니다. 셔플 버퍼에서 샘플링할 때와 데이터 샤드를 섞을 때 사용됩니다.

generator (`numpy.random.Generator`, *선택 사항*) : 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. `generator=None`(기본값)인 경우, `np.random.default_rng`(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.

buffer_size (`int`, 기본값 `1000`) : 버퍼의 크기.

max_buffer_input_shards (`int`, 기본값 `10`) : 버퍼에 데이터를 공급할 때 한 번에 사용할 최대 샤드 수입니다.

이 데이터셋의 요소를 무작위로 섞습니다.

이 데이터셋은 버퍼에 `buffer_size`개의 요소를 채운 후, 이 버퍼에서 요소를 무작위로 샘플링하고 선택된 요소를 새로운 요소로 대체합니다. 완벽한 셔플링을 위해서는 데이터셋 전체 크기와 같거나 큰 버퍼 크기가 필요합니다.

예를 들어, 데이터셋에 10,000개의 요소가 있지만 `buffer_size`가 1000으로 설정되어 있다면, `shuffle`은 처음에 버퍼의 첫 1000개 요소 중에서만 무작위로 요소를 선택합니다. 요소가 선택되면, 버퍼 내 해당 요소의 공간은 다음(즉, 1,001번째) 요소로 대체되어 1000개 요소의 버퍼가 유지됩니다.

데이터셋이 여러 개의 샤드로 구성되어 있는 경우, 버퍼를 채울 때 한 번에 최대 `max_buffer_input_shards`개의 샤드를 사용하며 샤드 순서도 섞습니다. 이를 통해 셔플링 품질이 크게 향상됩니다. 입력 샤드는 각 노드와 워커 내에서 교차(interleave)되어 배치되며, 병렬 데이터 로딩에 사용할 수 있는 샤드 수는 유지됩니다.

그러나 [skip()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.skip) 또는 [take()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.take)를 사용하여 순서가 고정된 경우, 샤드의 순서는 변경되지 않고 버퍼를 채우기 위해 한 번에 하나의 샤드만 사용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'label': 1},
 {'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'label': 1},
 {'text': 'effective but too-tepid biopic', 'label': 1}]
>>> shuffled_ds = ds.shuffle(seed=42)
>>> list(shuffled_ds.take(3))
[{'text': "a sports movie with action that's exciting on the field and a story you care about off it .",
 'label': 1},
 {'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .',
 'label': 1},
 {'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune .",
 'label': 1}]
>>> resharded_ds = ds.reshard()  # useful to shard Parquet datasets by row group instead of by file, improving shuffling quality on dataset with one or few files.
>>> shuffled_resharded_ds = resharded_ds.shuffle(seed=42)
>>> list(shuffled_resharded_ds.take(3))
[{'text': 'this mistaken-identity picture is so film-culture referential that the final product is a ghost .',
 'label': 0},
 {'text': 'woody allen used to ridicule movies like hollywood ending . now he makes them .',
 'label': 0},
 {'text': "not only is undercover brother as funny , if not more so , than both austin powers films , but it's also one of the smarter , savvier spoofs to come along in some time .",
 'label': 1}]
```

#### 배치[[datasets.IterableDataset.batch]]

```python
batch(batch_size: typing.Optional[int] = None, by_column: typing.Union[str, list[str], NoneType] = None, drop_last_batch: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4657)

**매개변수:**

batch_size (`int`, optional) : 각 배치에 포함된 샘플 수.

by_column (`Union[str, list[str]`, optional) : 예시를 배치로 묶는 데 사용되는 열입니다. 해당 열의 값이 동일한 연속된 예시들은 동일한 배치에 그룹화됩니다. 여러 열을 기준으로 배치하려면 열 목록도 사용할 수 있습니다. 열 기준으로 배치하는 경우, batch_size는 누적 과정에서 함께 묶거나 슬라이스할 배치의 크기를 제어하는 데만 사용됩니다.

drop_last_batch (`bool`, 기본값 `False`) : 마지막 불완전한 배치(dropped)를 제거할지 여부.

데이터셋에서 샘플을 배치로 그룹화합니다.

예:

고정 배치 크기:

```py
>>> ds = load_dataset("some_dataset", streaming=True, split="train")
>>> batched_ds = ds.batch(batch_size=32)
```

"my_column" 값이 동일한 연속 샘플 배치:

```py
>>> ds = load_dataset("some_dataset", streaming=True, split="train")
>>> batched_ds = ds.batch(by_column="my_column")
```

#### 건너뛰기[[datasets.IterableDataset.skip]]

```python
skip(n: int)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4058)

**매개변수:**

n (`int`) : 건너뛸 요소의 개수.

첫 `n`개 요소를 건너뛰는 새로운 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]
```

#### take[[datasets.IterableDataset.take]]

```python
take(n: int)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4144)

**매개변수:**

n (`int`) : 가져올 요소의 개수.

첫 번째 `n`개 요소만 포함된 새로운 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]
```

#### shard[[datasets.IterableDataset.shard]]

```python
shard(num_shards: int, index: int, contiguous: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4179)

**매개변수:**

num_shards (`int`) : 데이터셋을 몇 개의 샤드로 나눌지 지정합니다.

index (`int`) : 선택하고 반환할 샤드.

contiguous : (`bool`, 기본값 `True`): 샤드에 사용할 인덱스 블록을 연속적으로 선택할지 여부.

데이터셋을 `num_shards`개의 조각으로 나누고 `index`번째 샤드를 반환합니다.

이것은 결정적으로 샤딩됩니다. `dataset.shard(n, i)`는 데이터셋을 연속된 청크로 나누므로, 처리 후 쉽게 다시 연결할 수 있습니다. `dataset.num_shards % n == l`인 경우, 첫 번째 `l`개의 데이터셋은 각각 `(dataset.num_shards // n) + 1`개의 샤드를 가지며, 나머지 데이터셋은 `(dataset.num_shards // n)`개의 샤드를 가집니다. `datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)])`는 원래와 동일한 순서를 가진 데이터셋을 반환합니다. 특히, `dataset.shard(dataset.num_shards, i)`는 1개의 샤드를 가진 데이터셋을 반환합니다.

Note: n은 데이터셋의 샤드 수 `dataset.num_shards`보다 작거나 같아야 합니다.

반면, `dataset.shard(n, i, contiguous=False)`는 인덱스가 `n = i`인 데이터셋의 모든 샤드를 포함합니다.

`shuffle`와 같은 무작위화 연산자를 사용하기 전에 반드시 샤딩을 수행해야 합니다. 샤딩 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.shard(num_shards=2, index=0)
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 2
})
```

#### reshard[[datasets.IterableDataset.reshard]]

```python
reshard()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4235)

가능하다면 데이터셋을 리샤드(reshard)합니다. 즉, 현재 샤드를 더 많은 샤드로 분할합니다. 이를 통해 샤드 수가 증가하며, 결과 데이터셋의 num_shards는 previous_num_shards보다 크거나 같습니다. 더 이상 분할할 수 있는 샤드가 없는 경우 동등한 값이 될 수 있습니다.

resharding 메커니즘은 데이터셋 파일 형식에 따라 달라집니다:

* Parquet: 파일별로가 아닌 row group별로 샤딩
* Vortex: 파일별로而不是 연속된 청크 범위(각각 약 64MB의 파일 데이터)별로 샤드를 생성
* 기타: 아직 구현되지 않았습니다(기여 환영합니다!)

`shuffle`와 같은 무작위화 연산자를 사용하기 전에 반드시 reshard/shard를 수행해야 합니다. shard 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.reshard()
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 3600
})
```

#### 반복[[datasets.IterableDataset.repeat]]

```python
repeat(num_times: typing.Optional[int])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4100)

**매개변수:**

num_times (`int`) 또는 (`None`) : 데이터셋을 반복할 횟수입니다. `None`인 경우, 데이터셋은 무한히 반복됩니다.

`num_times`번 반복하는 새로운 [IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)을 생성합니다.

`num_times`가 `None`인 경우에도 빈 입력은 처리를 종료합니다.

N.B. repeat 호출 후 shuffle을 호출하는 효과는 buffer size에 따라 크게 달라집니다. buffer_size가 1인 경우, 셔플링 후에도 동일한 반복(iteration)에서 중복 데이터가 관찰되지 않습니다: ds.repeat(n).shuffle(seed=42, buffer_size=1)은 ds.shuffle(seed=42, buffer_size=1).repeat(n)과 동일하며, 각 반복 내에서 shard 순서만 셔플링합니다. buffer size가 >= (데이터셋의 샘플 수 * num_times)인 경우, 반복된 데이터에 대한 완전한 셔플링이 수행되어, 동일한 반복 내에서 중복을 관찰할 수 있습니다.

예:
```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
```

#### to_csv[[datasets.IterableDataset.to_csv]]

```python
to_csv(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **to_csv_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4856)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.csv`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.csv`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****to_csv_kwargs** (추가 키워드 인자) : pandas의 [`pandas.DataFrame.to_csv`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html)에 전달할 매개변수입니다. `index` 매개변수는 지정되지 않은 경우 기본값이 `False`입니다. 인덱스를 기록하려면 `index=True`를 전달하고, `index_label`을 전달하여 인덱스 열 이름을 설정해야 합니다.

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 csv로 내보냅니다.

이것은 데이터셋을 반복하며, 쓰기 전에 완전히 메모리에 로드합니다.

예:

```py
>>> ds.to_csv("path/to/dataset/directory")
```

#### to_pandas[[datasets.IterableDataset.to_pandas]]

```python
to_pandas(batch_size: typing.Optional[int] = None, batched: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4777)

**매개변수:**

batch_size (`int`, *선택 사항*) : `batched`가 `True`인 경우 배치의 크기(행 수). 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

batched (`bool`) : `True`로 설정하면 `batch_size` 행의 배치로 데이터셋을 반환하는 생성기를 반환합니다. 기본값은 `False`입니다(데이터셋 전체를 한 번에 반환).

**반환값:**

`pandas.DataFrame` 또는 `Iterator[pandas.DataFrame]`

`pandas.DataFrame`로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성기도 반환할 수 있습니다.

예:

```py
>>> ds.to_pandas()
```

#### to_dict[[datasets.IterableDataset.to_dict]]

```python
to_dict(batch_size: typing.Optional[int] = None, batched: bool = False)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4737)

**매개변수:**

batch_size (`int`, *선택 사항*) : `batched`가 `True`인 경우 배치의 크기(행 수). 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

**반환값:**

`dict` 또는 `Iterator[dict]`

Python dict으로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성자(generator)를 반환할 수도 있습니다.

예:

```py
>>> ds.to_dict()
```

#### to_json[[datasets.IterableDataset.to_json]]

```python
to_json(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **to_json_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4899)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.json`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.json`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****to_json_kwargs** (additional keyword arguments) : Parameters to pass to pandas's [`pandas.DataFrame.to_json`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html). Default arguments are `lines=True` and `orient="records". The parameter `index` defaults to `False` if `orient` is `"split"` or `"table"`. If you would like to write the index, pass `index=True`.

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 JSON Lines 또는 JSON으로 내보냅니다.

이것은 데이터셋을 반복하며, 쓰기 전에 완전히 메모리에 로드합니다.

기본 출력 형식은 [JSON Lines](https://jsonlines.org/)입니다. [JSON](https://www.json.org)으로 내보내려면 `lines=False` 인수와 원하는 `orient`를 전달하세요.

예:

```py
>>> ds.to_json("path/to/dataset/directory/filename.jsonl")
```

```py
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_json(f"path/of/my/dataset/data-{index:05d}.jsonl")
```

#### to_parquet[[datasets.IterableDataset.to_parquet]]

```python
to_parquet(path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO], batch_size: typing.Optional[int] = None, storage_options: typing.Optional[dict] = None, **parquet_writer_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4995)

**매개변수:**

path_or_buf (`PathLike` 또는 `FileOrBuffer`) : 파일 경로(예: `file.parquet`), 원격 URI(예: `hf://datasets/username/my_dataset_name/data.parquet`), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

storage_options (`dict`, *선택 사항*) : 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

- ****parquet_writer_kwargs** (추가 키워드 인자): PyArrow의 `pyarrow.parquet.ParquetWriter`에 전달할 매개변수.

**반환값:** `int`

쓰인 문자 또는 바이트 수.

데이터셋을 parquet로 내보냅니다

예:

```py
>>> ds.to_parquet("path/to/dataset/directory")
```

```py
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_parquet(f"path/of/my/dataset/data-{index:05d}.parquet")
```

#### to_sql[[datasets.IterableDataset.to_sql]]

```python
to_sql(name: str, con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')], batch_size: typing.Optional[int] = None, **sql_writer_kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L4953)

**매개변수:**

name (`str`) : SQL 테이블 이름.

con (`str` 또는 `sqlite3.Connection` 또는 `sqlalchemy.engine.Connection` 또는 `sqlalchemy.engine.Connection`) : 데이터베이스에 쓰기 위해 사용되는 [URI 문자열](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls) 또는 SQLite3/SQLAlchemy 연결 객체.

batch_size (`int`, *선택 사항*) : 메모리에 로드하고 한 번에 작성할 배치의 크기. 기본값은 `datasets.config.DEFAULT_MAX_BATCH_SIZE`입니다.

- ****sql_writer_kwargs** (추가 키워드 인자) : [`pandas.DataFrame.to_sql`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html)에 전달할 매개변수입니다. `index` 매개변수는 지정되지 않은 경우 기본값이 `False`입니다. 인덱스를 기록하려면 `index=True`를 전달하고, `index_label`을 전달하여 인덱스 열 이름을 설정해야 합니다.

**반환값:** `int`

기록된 레코드 수입니다.

데이터셋을 SQL 데이터베이스로 내보냅니다.

예:

```py
>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)
```

#### push_to_hub[[datasets.IterableDataset.push_to_hub]]

```python
push_to_hub(repo_id: str, config_name: str = 'default', set_default: typing.Optional[bool] = None, split: typing.Optional[str] = None, data_dir: typing.Optional[str] = None, commit_message: typing.Optional[str] = None, commit_description: typing.Optional[str] = None, private: typing.Optional[bool] = None, token: typing.Optional[str] = None, revision: typing.Optional[str] = None, create_pr: typing.Optional[bool] = False, max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[int] = None, embed_external_files: bool = True, num_proc: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L5330)

**매개변수:**

repo_id (`str`) : 다음 형식의 저장소 ID: `<user>/<dataset_name>` 또는 `<org>/<dataset_name>`. 로그인한 사용자의 네임스페이스를 기본값으로 사용하는 `<dataset_name>`도 허용됩니다. 또한 버킷 내부의 위치일 수도 있으며, 예: `buckets/<user_or_org>/<bucket_name>/...`

config_name (`str`, 기본값 "default") : 데이터셋의 구성 이름(또는 부분 집합). 기본값은 "default"입니다.

set_default (`bool`, *선택 사항*) : 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 "default"라는 이름의 구성입니다.

split (`str`, *선택 사항*) : 해당 데이터셋에 부여할 스플릿의 이름입니다. 기본값은 `self.split`입니다.

data_dir (`str`, *선택 사항*) : 업로드된 데이터 파일을 포함할 디렉터리 이름. "default"와 다르면 `config_name`을 기본값으로 사용하고, 그렇지 않으면 "data"를 기본값으로 사용합니다.

commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지입니다. 기본값은 `"Upload dataset"`입니다.

commit_description (`str`, *선택 사항*) : 생성될 커밋의 설명입니다. PR이 생성되는 경우(`create_pr`가 True인 경우) PR의 설명이기도 합니다.

private (`bool`, *선택 사항*) : 저장소를 비공개로 만들지 여부입니다. `None`(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 이미 저장소가 존재하면 이 값은 무시됩니다.

token (`str`, *선택 사항*) : Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 `hf auth login`으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.

revision (`str`, *선택 사항*) : 업로드된 파일을 푸시할 브랜치입니다. 기본값은 `"main"` 브랜치입니다.

create_pr (`bool`, *선택 사항*, 기본값 `False`) : 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.

max_shard_size (`int` 또는 `str`, *선택 사항*) : 허브에 업로드할 데이터셋 샤드의 최대 크기를 선택적으로 지정합니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: `"5MB"`)가 따라야 합니다. 값을 제공하지 않으면 샤드 수는 이 데이터셋의 `.num_shards` 값으로 기본 설정됩니다.

num_shards (`int`, *선택 사항*) : 작성할 샤드 수. `max_shard_size`가 제공되고 `num_shards`가 제공되지 않으면, 샤드 수는 `max_shard_size`에서 추정됩니다. 이 데이터셋의 `.num_shards`보다 클 수 있습니다. 이 경우 각 입력 샤드의 예시를 라운드 로빈 방식으로 여러 출력 샤드에 분산하여 작성합니다.

embed_external_files (`bool`, 기본값 `True`) : 샤드에 파일 바이트를 임베드할지 여부입니다. 특히, push 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다. - [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 및 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image): 로컬 경로 정보를 제거하고 Parquet 파일에 파일 내용을 임베드합니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋이 많은 샘플과 변환으로 구성되어 있다면 유용합니다. hf_xet, 즉 HF로의 빠른 업로드를 위한 rust 클라이언트와 함께 작동하도록 "spawn" 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

**반환값:**

huggingface_hub.CommitInfo

Parquet 데이터셋으로 Hub에 데이터셋을 업로드합니다. 데이터셋은 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image), [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 또는 [Video](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Video) 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. `embed_external_files`를 `False`로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

```python
>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)
```

데이터셋에 여러 스플릿(예: train/validation/test)이 있는 경우:

```python
>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]
```

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

```python
>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")
```

#### load_state_dict[[datasets.IterableDataset.load_state_dict]]

```python
load_state_dict(state_dict: dict)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L2800)

dataset의 state_dict를 로드합니다. 반복은 상태가 저장된 시점의 다음 예제부터 다시 시작됩니다.

Resuming은 체크포인트가 저장된 위치에서 정확히 이어서 실행되지만, 다음 두 가지 경우를 제외합니다:

1. shuffle buffers에서 가져온 예제는 재개 시 손실되며, 버퍼에는 새로운 데이터로 다시 채워집니다
2. `.with_format(arrow)`와 배치된 `.map()`의 조합은 배치 하나를 건너뛸 수 있습니다.

예:

```py
>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)
```

다음과 같은 값을 반환합니다:
```
{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
```

```py
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood
```

#### state_dict[[datasets.IterableDataset.state_dict]]

```python
state_dict()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L2747)

**반환값:** `dict`

데이터셋의 현재 state_dict를 가져옵니다. 이는 마지막으로 yield한 예제에 해당하는 상태를 나타냅니다.

Resuming은 체크포인트가 저장된 위치에서 정확히 이어서 실행되지만, 다음 두 가지 경우를 제외합니다:

1. shuffle buffers에서 가져온 예제는 재개 시 손실되며, 버퍼에는 새로운 데이터로 다시 채워집니다
2. `.with_format(arrow)`와 배치된 `.map()`의 조합은 배치 하나를 건너뛸 수 있습니다.

예:

```py
>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)
```

다음과 같은 값을 반환합니다:
```
{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
```

```py
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood
```

#### info[[datasets.IterableDataset.info]]

```python
info()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L172)

데이터셋의 모든 메타데이터를 포함하는 [DatasetInfo](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.DatasetInfo) 객체.

#### split[[datasets.IterableDataset.split]]

```python
split()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L177)

명명된 데이터셋 분할에 해당하는 [NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit) 객체.

#### builder_name[[datasets.IterableDataset.builder_name]]

```python
builder_name()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L182)

#### 인용[[datasets.IterableDataset.citation]]

```python
citation()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L186)

#### config_name[[datasets.IterableDataset.config_name]]

```python
config_name()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L190)

#### dataset_size[[datasets.IterableDataset.dataset_size]]

```python
dataset_size()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L194)

#### 설명[[datasets.IterableDataset.description]]

```python
description()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L198)

#### download_checksums[[datasets.IterableDataset.download_checksums]]

```python
download_checksums()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L202)

#### download_size[[datasets.IterableDataset.download_size]]

```python
download_size()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L206)

#### features[[datasets.IterableDataset.features]]

```python
features()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L210)

#### 홈페이지[[datasets.IterableDataset.homepage]]

```python
homepage()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L214)

#### 라이선스[[datasets.IterableDataset.license]]

```python
license()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L218)

#### size_in_bytes[[datasets.IterableDataset.size_in_bytes]]

```python
size_in_bytes()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L222)

#### supervised_keys[[datasets.IterableDataset.supervised_keys]]

```python
supervised_keys()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L226)

#### 버전[[datasets.IterableDataset.version]]

```python
version()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/arrow_dataset.py#L230)

#### from_csv[[datasets.IterableDataset.from_csv]]

```python
from_csv(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, keep_in_memory: bool = False, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3392)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : CSV 파일의 경로(들).

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), *선택 사항*) : 데이터셋에 할당할 분할 이름.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

- ****kwargs** (추가 키워드 인자) : `pandas.read_csv`에 전달할 키워드 인자입니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

CSV 파일에서 IterableDataset을(를) 생성합니다.

예:

```py
>>> ds = IterableDataset.from_csv('path/to/dataset.csv')
```

#### from_json[[datasets.IterableDataset.from_json]]

```python
from_json(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, keep_in_memory: bool = False, field: typing.Optional[str] = None, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3435)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : JSON 또는 JSON Lines 파일의 경로입니다.

split ([NamedSplit](/docs/datasets/v5.2.0/ko/package_reference/builder_classes#datasets.NamedSplit), *선택 사항*) : 데이터셋에 할당할 분할 이름.

features ([Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features), *선택 사항*) : Dataset의 features입니다.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

field (`str`, *선택 사항*) : 데이터셋이 포함된 JSON 파일의 필드 이름.

- ****kwargs** (추가 키워드 인자) : `JsonConfig`에 전달할 키워드 인자입니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

JSON 또는 JSON Lines 파일에서 IterableDataset을 생성합니다.

예:

```py
>>> ds = IterableDataset.from_json('path/to/dataset.json')
```

#### from_parquet[[datasets.IterableDataset.from_parquet]]

```python
from_parquet(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, keep_in_memory: bool = False, columns: typing.Optional[list[str]] = None, filters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = None, fragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = None, on_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error', **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3482)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : Parquet 파일의 경로(들).

split (`NamedSplit`, *선택 사항*) : 데이터셋에 할당할 분할 이름.

features (`Features`, *선택 사항*) : Dataset의 features입니다.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

columns (`List[str]`, *선택 사항*) : `None`이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 'a'는 'a.b', 'a.c', 'a.d.e'를 선택합니다.

filters (`Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]]`, *선택 사항*) : 필터와 일치하는 행만 반환합니다. 가능하면 데이터 소스에서 발견되는 파티션 정보나 내부 메타데이터(예: Parquet 통계)를 활용하기 위해 조건을 아래로 전달(push down)합니다. 그렇지 않으면 RecordBatches를 로드한 후 반환하기 전에 필터링합니다.

fragment_scan_options (`pyarrow.dataset.ParquetFragmentScanOptions`, *선택 사항*) : Parquet 조각에 대한 스캔 전용 옵션입니다. 버퍼링 및 캐싱을 구성하는 데 특히 유용합니다.

on_bad_files (`Literal["error", "warn", "skip"]`, *선택 사항*, 기본값은 "error") : 읽을 수 없는 파일(잘못된 파일)을 만나면 어떻게 처리할지 지정합니다. 허용되는 값은 다음과 같습니다. * 'error': 잘못된 파일을 만나면 예외를 발생시킵니다. * 'warn': 잘못된 파일을 만나면 경고를 발생시키고 해당 파일을 건너뜁니다. * 'skip': 잘못된 파일을 만나면 경고나 예외 없이 건너뜁니다.

- ****kwargs** (추가 키워드 인자) : `ParquetConfig`에 전달할 키워드 인자입니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

Parquet 파일에서 IterableDataset를 생성합니다.

예:

```py
>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet')
```

일부 열을 로드합니다:

```python
>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])
```

데이터를 효율적으로 필터링하고, 필요에 따라 파일 전체 또는 행 그룹을 건너뜁니다:

```python
>>> filters = [("col_0", "==", 0)]
>>> ds = IterableDataset.from_parquet(parquet_files_list, filters=filters)
```

#### from_text[[datasets.IterableDataset.from_text]]

```python
from_text(path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]], split: typing.Optional[datasets.splits.NamedSplit] = None, features: typing.Optional[datasets.features.features.Features] = None, keep_in_memory: bool = False, keep_linebreaks: bool = False, sample_by: typing.Literal['line', 'paragraph', 'document'] = 'line', **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L3567)

**매개변수:**

path_or_paths (`path-like` 또는 `path-like` 목록) : 텍스트 파일의 경로(들).

split (`NamedSplit`, *선택 사항*) : 데이터셋에 할당할 분할 이름.

features (`Features`, *선택 사항*) : Dataset의 features입니다.

keep_in_memory (`bool`, 기본값 `False`) : 데이터를 메모리에 복사할지 여부.

keep_linebreaks : (`bool`, 기본값 False): 줄바꿈을 유지할지 여부.

sample_by (`Literal["line", "paragraph", "document"]`, 기본값은 "line") : 데이터를 줄, 문단 또는 문서 단위로 로드할지 여부입니다. 기본적으로 데이터셋의 한 행은 한 줄을 나타냅니다.

- ****kwargs** (추가 키워드 인자) : `TextConfig`에 전달할 키워드 인자입니다.

**반환값:**

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)

텍스트 파일에서 IterableDataset을(를) 생성합니다.

예:

```py
>>> ds = IterableDataset.from_text('path/to/dataset.txt')
```

#### datasets.IterableColumn[[datasets.IterableColumn]]

```python
datasets.IterableColumn(source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')], column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/iterable_dataset.py#L2657)

[IterableDataset](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset)의 특정 열에 대한 반복 가능한 객체입니다.

예:

데이터셋의 "text" 열의 텍스트를 반복합니다:

```python
for text in dataset["text"]:
    ...
```

중첩된 컬럼에서도 작동합니다:

```python
for source in dataset["metadata"]["source"]:
    ...
```

## IterableDatasetDict[[datasets.IterableDatasetDict]]

키로 분할 이름('train', 'test' 등)을, 값으로 `IterableDataset` 객체를 가지는 딕셔너리

#### datasets.IterableDatasetDict[[datasets.IterableDatasetDict]]

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1810)

#### map[[datasets.IterableDatasetDict.map]]

```python
map(function: typing.Optional[typing.Callable] = None, with_indices: bool = False, with_split: bool = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: int = 1000, drop_last_batch: bool = False, remove_columns: typing.Union[str, list[str], NoneType] = None, fn_kwargs: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1911)

**매개변수:**

function (`Callable`, *선택 사항*, 기본값은 `None`) : 데이터셋을 반복할 때 예제에 즉시 적용되는 함수입니다. 다음 서명 중 하나를 가져야 합니다:  - `batched=False`이고 `with_indices=False`인 경우 `function(example: Dict[str, Any]) -> Dict[str, Any]` - `batched=False`이고 `with_indices=True`인 경우 `function(example: Dict[str, Any], idx: int) -> Dict[str, Any]` - `batched=True`이고 `with_indices=False`인 경우 `function(batch: Dict[str, list]) -> Dict[str, list]` - `batched=True`이고 `with_indices=True`인 경우 `function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list]`  고급 사용법에 따라 함수는 `pyarrow.Table`를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, `map`은 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(`None`), `map`은 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면 항등 함수 `lambda x: x`를 기본값으로 사용합니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx[, rank]): ...`여야 합니다.

input_columns (`[Union[str, list[str]]]`, *선택 사항*, 기본값 `None`) : `function`에 위치 인수로 전달될 열입니다. `None`인 경우, 모든 포맷된 열에 대한 딕셔너리가 하나의 인수로 전달됩니다.

batched (`bool`, 기본값 `False`) : `function`에 예시 배치(batch)를 제공합니다.

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 전달되는 배치당 예제 수.

drop_last_batch (`bool`, 기본값 `False`) : `batch_size`보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부.

remove_columns (`[list[str]]`, *선택 사항*, 기본값 `None`) : 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 `function`의 출력으로 예시를 업데이트하기 전에 제거되므로, `function`이 `remove_columns`에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자

반복 가능한 데이터셋의 모든 예시(개별 또는 배치 단위)에 함수를 적용하여 예시를 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 이 함수는 데이터셋을 반복할 때 예시에 온더플라이(on-the-fly)로 적용됩니다. 변환은 데이터셋 딕셔너리의 모든 데이터셋에 적용됩니다.

`batched` 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

- `False`인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 `{"text": "Hello there !"}`과 같습니다.
- `True`이고 `batch_size`가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 `{"text": ["Hello there !"]}`입니다.
- `True`이고 `batch_size`가 `n` > 1인 경우, 이 함수는 `n`개의 예시로 구성된 배치(batch)를 입력으로 받아 `n`개의 예시로 구성된 배치 또는 임의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 `n`개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 `n`개의 예시로 구성된 배치는 `{"text": ["Hello there !"] * n}`입니다.

함수가 비동기(asynchronous)인 경우, `map`은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 `asyncio.Semaphore`를 사용하는 것이 권장됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> next(iter(ds["train"]))
{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### 필터[[datasets.IterableDatasetDict.filter]]

```python
filter(function: typing.Optional[typing.Callable] = None, with_indices = False, input_columns: typing.Union[str, list[str], NoneType] = None, batched: bool = False, batch_size: typing.Optional[int] = 1000, fn_kwargs: typing.Optional[dict] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2011)

**매개변수:**

function (`Callable`) : 다음 서명 중 하나를 가진 Callable: - `with_indices=False, batched=False`인 경우 `function(example: Dict[str, Any]) -> bool` - `with_indices=True, batched=False`인 경우 `function(example: Dict[str, Any], indices: int) -> bool` - `with_indices=False, batched=True`인 경우 `function(example: Dict[str, list]) -> list[bool]` - `with_indices=True, batched=True`인 경우 `function(example: Dict[str, list], indices: list[int]) -> list[bool]` 함수가 제공되지 않으면 항상 True를 반환하는 함수 `lambda x: True`가 기본값으로 사용됩니다.

with_indices (`bool`, 기본값 `False`) : `function`에 예시 인덱스를 제공합니다. 이 경우 `function`의 시그니처는 `def function(example, idx): ...`여야 합니다.

input_columns (`str` 또는 `list[str]`, *선택 사항*) : `function`에 위치 인수로 전달할 열입니다. `None`인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.

batched (`bool`, 기본값은 `False`) : `function`에 예시 배치(batch)를 제공합니다

batch_size (`int`, *선택 사항*, 기본값 `1000`) : `batched=True`인 경우 `function`에 전달되는 배치당 예제 수.

fn_kwargs (`Dict`, *선택 사항*, 기본값 `None`) : `function`에 전달할 키워드 인자

필터 함수를 모든 요소에 적용하여 데이터셋이 필터 함수에 따라 예시를 포함하도록 합니다. 필터링은 데이터셋을 반복할 때 실시간으로 수행됩니다. 필터링은 데이터셋 딕셔너리의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds["train"].take(3))
[{'label': 0, 'text': 'Review: simplistic , silly and tedious .'},
 {'label': 0,
 'text': "Review: it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'text': 'Review: exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]
```

#### shuffle[[datasets.IterableDatasetDict.shuffle]]

```python
shuffle(seed = None, generator: typing.Optional[numpy.random._generator.Generator] = None, buffer_size: int = 1000, max_buffer_input_shards: int = 10)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2074)

**매개변수:**

seed (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 섞는 데 사용할 무작위 시드입니다. 셔플 버퍼에서 샘플링할 때와 데이터 샤드를 섞을 때 사용됩니다.

generator (`numpy.random.Generator`, *선택 사항*) : 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. `generator=None`(기본값)인 경우, `np.random.default_rng`(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.

buffer_size (`int`, 기본값 `1000`) : 버퍼의 크기.

max_buffer_input_shards (`int`, 기본값 `10`) : 버퍼에 데이터를 공급할 때 한 번에 사용할 최대 샤드 수입니다.

이 데이터셋의 요소를 무작위로 섞습니다. 섞기는 데이터셋 사전의 모든 데이터셋에 적용됩니다.

이 데이터셋은 버퍼에 buffer_size개의 요소를 채운 후, 이 버퍼에서 요소를 무작위로 샘플링하고 선택된 요소를 새로운 요소로 교체합니다. 완벽한 셔플링을 위해서는 데이터셋 전체 크기와 같거나 큰 버퍼 크기가 필요합니다.

예를 들어, 데이터셋에 10,000개의 요소가 있지만 `buffer_size`가 1000으로 설정되어 있다면, `shuffle`은 처음에 버퍼의 첫 1000개 요소 중에서만 무작위로 요소를 선택합니다. 요소가 선택되면, 버퍼 내 해당 요소의 공간은 다음(즉, 1,001번째) 요소로 대체되어 1000개 요소의 버퍼가 유지됩니다.

데이터셋이 여러 개의 샤드로 구성되어 있는 경우, 샤드의 순서도 `shuffle`합니다. 그러나 [skip()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.skip) 또는 [take()](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDataset.take)를 사용하여 순서가 고정된 경우, 샤드의 순서는 변경되지 않습니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.shuffle(seed=42)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': "a sports movie with action that's exciting on the field and a story you care about off it ."},
 {'label': 1,
 'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .'},
 {'label': 1,
 'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune ."}]
```

#### with_format[[datasets.IterableDatasetDict.with_format]]

```python
with_format(type: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L1865)

**매개변수:**

type (`str`, *선택 사항*) : `[None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']`에서 선택한 출력 유형입니다. `None`은 Python 객체를 반환함을 의미합니다(기본값).

지정한 형식의 데이터셋을 반환합니다.

예:

```py
>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation", streaming=True)
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds = ds.with_format("torch")
>>> next(iter(ds))
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}
```

#### cast[[datasets.IterableDatasetDict.cast]]

```python
cast(features: Features)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2290)

**매개변수:**

features (`Features`) : 데이터셋을 변환할 새로운 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. `string` <-> `ClassLabel`와 같이 단순하지 않은 변환의 경우, `map`을 사용하여 Dataset을 업데이트해야 합니다.

**반환값:** [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

dataset를 새로운 기능 집합으로 캐스팅합니다. 타입 캐스팅은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}
```

#### cast_column[[datasets.IterableDatasetDict.cast_column]]

```python
cast_column(column: str, feature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2259)

**매개변수:**

column (`str`) : 컬럼 이름.

feature (`Feature`) : 대상 특징.

**반환값:**

[IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

디코딩을 위해 컬럼을 feature로 캐스팅합니다. 타입 캐스팅은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

```py
>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}
```

#### remove_columns[[datasets.IterableDatasetDict.remove_columns]]

```python
remove_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2207)

**매개변수:**

column_names (`Union[str, list[str]]`) : 제거할 열의 이름.

**반환값:** [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연관된 features를 제거합니다. 데이터셋을 반복할 때 예제에 대해 제거가 즉시 수행됩니다. 제거는 dataset dictionary의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.remove_columns("label")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### rename_column[[datasets.IterableDatasetDict.rename_column]]

```python
rename_column(original_column_name: str, new_column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2143)

**매개변수:**

original_column_name (`str`) : 이름이 변경될 열의 이름.

new_column_name (`str`) : 열의 새 이름.

**반환값:** [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

열 이름이 변경된 데이터셋의 복사본.

dataset의 컬럼을 이름 변경하고, 원래 컬럼에 연결된 features를 새 컬럼 이름 아래로 이동합니다. 이름 변경은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds["train"]))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### rename_columns[[datasets.IterableDatasetDict.rename_columns]]

```python
rename_columns(column_mapping: dict)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2179)

**매개변수:**

column_mapping (`Dict[str, str]`) : 컬럼을 새 이름으로 변경할 매핑입니다.

**반환값:** [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

열 이름이 변경된 데이터셋의 복사본

… 데이터셋의 여러 열 이름을 변경하고, 원래 열과 관련된 기능을 새 열 이름 아래로 이동합니다. 이름 변경은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_columns({"text": "movie_review", "label": "rating"})
>>> next(iter(ds["train"]))
{'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'rating': 1}
```

#### select_columns[[datasets.IterableDatasetDict.select_columns]]

```python
select_columns(column_names: typing.Union[str, list[str]])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2233)

**매개변수:**

column_names (`Union[str, list[str]]`) : 유지할 열의 이름.

**반환값:** [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)

선택된 열만 포함된 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 열과 해당 열에 연관된 특징을 선택합니다. 선택은 데이터셋을 반복할 때 예제에 실시간으로 적용됩니다. 선택은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.select("text")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
```

#### push_to_hub[[datasets.IterableDatasetDict.push_to_hub]]

```python
push_to_hub(repo_id: str, config_name: str = 'default', set_default: typing.Optional[bool] = None, data_dir: typing.Optional[str] = None, commit_message: typing.Optional[str] = None, commit_description: typing.Optional[str] = None, private: typing.Optional[bool] = None, token: typing.Optional[str] = None, revision: typing.Optional[str] = None, create_pr: typing.Optional[bool] = False, max_shard_size: typing.Union[str, int, NoneType] = None, num_shards: typing.Optional[dict[str, int]] = None, embed_external_files: bool = True, num_proc: typing.Optional[int] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/dataset_dict.py#L2327)

**매개변수:**

repo_id (`str`) : 다음 형식의 저장소 ID: `<user>/<dataset_name>` 또는 `<org>/<dataset_name>`. 로그인한 사용자의 네임스페이스를 기본값으로 사용하는 `<dataset_name>`도 허용됩니다. 또한 버킷 내부의 위치일 수도 있으며, 예: `buckets/<user_or_org>/<bucket_name>/...`

config_name (`str`) : 데이터셋의 구성 이름. 기본값은 "default"입니다.

set_default (`bool`, *선택 사항*) : 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 "default"라는 이름의 구성입니다.

data_dir (`str`, *선택 사항*) : 업로드된 데이터 파일을 포함할 디렉터리 이름. "default"와 다르면 `config_name`을 기본값으로 사용하고, 그렇지 않으면 "data"를 기본값으로 사용합니다.

commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지입니다. 기본값은 `"Upload dataset"`입니다.

commit_description (`str`, *선택 사항*) : 생성될 커밋의 설명입니다. PR이 생성되는 경우(`create_pr`가 True인 경우) PR의 설명이기도 합니다.

private (`bool`, *선택 사항*) : 저장소를 비공개로 만들지 여부입니다. `None`(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 이미 저장소가 존재하면 이 값은 무시됩니다.

token (`str`, *선택 사항*) : Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 `hf auth login`으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.

revision (`str`, *선택 사항*) : 업로드된 파일을 푸시할 브랜치입니다. 기본값은 `"main"` 브랜치입니다.

create_pr (`bool`, *선택 사항*, 기본값 `False`) : 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.

max_shard_size (`int` 또는 `str`, *선택 사항*) : 허브에 업로드할 데이터셋 샤드의 최대 크기를 선택적으로 지정합니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: `"500MB"` 또는 `"1GB"`)가 따라야 합니다. 값을 제공하지 않으면 각 스플릿은 데이터셋 원본의 샤드 수를 유지합니다.

num_shards (`Dict[str, int]`, *선택 사항*) : 작성할 샤드 수. 사전(dict)을 사용하여 각 split에 대해 다른 `num_shards`를 정의할 수 있습니다. `max_shard_size`가 제공되고 특정 split의 `num_shards`가 제공되지 않으면, 해당 split의 샤드 수는 `max_shard_size`에서 추정됩니다.

embed_external_files (`bool`, 기본값 `True`) : 샤드에 파일 바이트를 임베드할지 여부입니다. 특히, push 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다. - [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 및 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image)의 경우 로컬 경로 정보를 제거하고 Parquet 파일에 파일 내용을 임베드합니다.

num_proc (`int`, *선택 사항*, 기본값 `None`) : 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 임베딩할 샘플이나 미디어 파일이 많을 때 유용합니다. hf_xet, 즉 HF로의 빠른 업로드를 위한 rust 클라이언트와 함께 작동하도록 "spawn" 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

**반환값:**

huggingface_hub.CommitInfo

[IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)를 Parquet 데이터셋으로 hub에 업로드합니다. [IterableDatasetDict](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.IterableDatasetDict)는 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

각 데이터셋 분할은 독립적으로 push됩니다. push된 데이터셋은 원래의 분할 이름을 유지합니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image) 또는 [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. `embed_external_files`를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

```python
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})
```

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

```python
>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")
```

## 기능[[datasets.Features]]

#### datasets.Features[[datasets.Features]]

```python
datasets.Features(*args, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1931)

데이터셋의 내부 구조를 정의하는 특수한 사전입니다.

`dict[str, FieldType]` 타입의 딕셔너리로 초기화되며, 키는 원하는 열 이름이고 값은 해당 열의 타입입니다.

`FieldType`는 다음 중 하나일 수 있습니다:
- [Value](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Value) 기능은 `int64` 또는 `string`과 같은 단일 데이터 타입 값을 지정합니다.
- [ClassLabel](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.ClassLabel) 기능은 라벨을 연결할 수 있는 미리 정의된 클래스 집합을 지정하며, 데이터셋에서는 정수 형태로 저장됩니다.
- Python `dict`은 하위 필드에서 하위 기능으로의 매핑을 포함하는 복합 기능을 지정합니다. 임의의 방식으로 중첩된 필드의 중첩된 필드를 가질 수 있습니다.
- [List](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.List) 또는 [LargeList](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.LargeList)는 동일한 feature 유형을 가진 서브-feature의 시퀀스를 포함하는 복합 feature를 지정합니다.
- 다차원 배열을 위한 [Array2D](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Array2D), [Array3D](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Array3D), [Array4D](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Array4D) 또는 [Array5D](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Array5D) 기능.
- 오디오 파일의 절대 경로 또는 오디오 파일의 상대 경로("path" 키)와 바이트 콘텐츠("bytes" 키)를 포함하는 사전. 이 [Audio](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Audio) 기능은 디코더를 사용하여 오디오를 지연 로드합니다.
- `np.ndarray` 객체, `PIL.Image.Image` 객체, 또는 이미지 파일의 상대 경로("path" 키)와 바이트 콘텐츠("bytes" 키)를 가진 딕셔너리를 저장하기 위한 [Image](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Image) 기능입니다. 이 기능은 이미지 데이터를 추출합니다.
- [Video](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Video) 기능은 비디오 파일의 절대 경로, `torchcodec.decoders.VideoDecoder` 객체, 또는 비디오 파일의 상대 경로("path" 키)와 바이트 콘텐츠("bytes" 키)를 담은 사전 중 하나를 저장합니다. 이 기능은 디코더를 사용하여 비디오를 지연 로드합니다.
- `pdfplumber.pdf.PDF` 객체, PDF 파일의 절대 경로, 또는 PDF 파일의 상대 경로("path" 키)와 바이트 콘텐츠("bytes" 키)를 가진 딕셔너리를 저장하는 [Pdf](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Pdf) 기능입니다. 이 기능은 PDF 리더를 사용하여 PDF를 지연 로드합니다.
- [Nifti](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Nifti) 기능은 NIfTI 신경영상 파일의 절대 경로, `nibabel.Nifti1Image` 객체, 또는 NIfTI 파일의 상대 경로("path" 키)와 바이트 콘텐츠("bytes" 키)를 가진 딕셔너리를 저장합니다. 이 기능은 nibabel을 사용하여 NIfTI 파일을 지연 로드합니다.
- 기계 번역에 특화된 [Translation](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Translation) 또는 [TranslationVariableLanguages](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.TranslationVariableLanguages) 기능입니다.
- [Json](/docs/datasets/v5.2.0/ko/package_reference/loading_methods#datasets.Json) 기능은 혼합/임의의 타입을 포함하는 비정형 데이터를 저장하는 데 사용됩니다. 내부적으로

#### 복사[[datasets.Features.copy]]

```python
copy()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2364)

**반환값:**

[기능](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)

[Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)의 깊은 복사본을 만듭니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> copy_of_features = ds.features.copy()
>>> copy_of_features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
```

#### decode_batch[[datasets.Features.decode_batch]]

```python
decode_batch(batch: dict, token_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2337)

**매개변수:**

batch (`dict[str, list[Any]]`) : Dataset 배치 데이터.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 오디오 또는 이미지 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`dict[str, list[Any]]`

커스텀 특징 디코딩을 사용하여 배치 디코딩.

#### decode_column[[datasets.Features.decode_column]]

```python
decode_column(column: list, column_name: str, token_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2312)

**매개변수:**

column (`list[Any]`) : Dataset 열 데이터.

column_name (`str`) : Dataset 열 이름.

**반환값:**

`list[Any]`

사용자 정의 기능 디코딩으로 컬럼 디코딩.

#### decode_example[[datasets.Features.decode_example]]

```python
decode_example(example: dict, token_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2289)

**매개변수:**

example (`dict[str, Any]`) : Dataset 행 데이터.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 오디오 또는 이미지 파일에 액세스하고 디코딩하려면 `repo_id (str) -> token (bool or str)` 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`dict[str, Any]`

사용자 정의 기능 디코딩을 사용한 디코딩 예제

#### encode_batch[[datasets.Features.encode_batch]]

```python
encode_batch(batch)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2270)

**매개변수:**

batch (`dict[str, list[Any]]`) : Dataset 배치의 데이터.

**반환값:**

`dict[str, list[Any]]`

배치를 Arrow 형식으로 인코딩합니다.

#### encode_column[[datasets.Features.encode_column]]

```python
encode_column(column, column_name: str)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2254)

**매개변수:**

column (`list[Any]`) : Dataset 컬럼의 데이터.

column_name (`str`) : Dataset 열 이름.

**반환값:**

`list[Any]`

Arrow 형식으로 컬럼을 인코딩합니다.

#### encode_example[[datasets.Features.encode_example]]

```python
encode_example(example)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2240)

**매개변수:**

example (`dict[str, Any]`) : Dataset 행의 데이터.

**반환값:**

`dict[str, Any]`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Features.flatten]]

```python
flatten(max_depth = 16)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2437)

**반환값:** [Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)

평탄화된 특징.

특징을 평탄화합니다. 모든 딕셔너리 열이 제거되고, 해당 열이 포함하는 모든 하위 필드로 대체됩니다. 새 필드는 원래 열 이름과 하위 필드 이름을 다음과 같이 연결하여 이름이 지정됩니다: `<original>.<subfield>`.

컬럼에 중첩된 사전이 포함된 경우, 하위 수준의 모든 서브필드 이름도 연결되어 새로운 컬럼을 형성합니다: `<original>.<subfield>.<subsubfield>` 등.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features.flatten()
{'answers.answer_start': List(Value('int32'), id=None),
 'answers.text': List(Value('string'), id=None),
 'context': Value('string'),
 'id': Value('string'),
 'question': Value('string'),
 'title': Value('string')}
```

#### from_arrow_schema[[datasets.Features.from_arrow_schema]]

```python
from_arrow_schema(pa_schema: Schema)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2023)

**매개변수:**

pa_schema (`pyarrow.Schema`) : Arrow 스키마.

**반환값:**

[기능](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)

Arrow Schema에서 [Features](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Features)를 구성합니다. 또한 Hugging Face Datasets의 features에 대한 스키마 메타데이터를 확인합니다. Null이 아닌 필드는 지원되지 않으며 nullable로 설정됩니다.

또한, pa.dictionary는 지원되지 않으며 대신 기본 유형을 사용합니다. 따라서 datasets는 DictionaryArray 객체를 실제 값으로 변환합니다.

#### from_dict[[datasets.Features.from_dict]]

```python
from_dict(dic)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2057)

**매개변수:**

dic (*dict[str, Any]*) : Python 사전.

**반환값:** `*Features*`

dict에서 [*Features*]를 구성합니다.

시리얼라이즈 해제된 dict에서 중첩된 feature 객체를 재생성합니다. *_type* 키를 사용하여 feature *FieldType*의 dataclass 이름을 추론합니다.

시리얼라이즈된 JSON 딕셔너리에서 기능을 정의하기 위한 편리한 생성자 구문을 제공합니다. 이 함수는 특히 JSON 객체로 덤프된 [*DatasetInfo*]를 디시리얼라이즈할 때 사용됩니다. 이는 [*Features.from_arrow_schema*]의 유사체로, 재귀적인 필드별 인스턴스화를 처리하지만, [*Value*]가 자동으로 수행하는 pyarrow 원시 dtype 매핑을 활용한다는 점을 제외하고는 pyarrow로의 매핑이 필요하지 않습니다.

예:

```python
>>> Features.from_dict(&amp;lcub;'_type': &amp;lcub;'dtype': 'string', 'id': None, '_type': 'Value'}})
&amp;lcub;'_type': Value('string')}
```

#### reorder_fields_as[[datasets.Features.reorder_fields_as]]

```python
reorder_fields_as(other: Features)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L2384)

**매개변수:**

other ([*Features*]) : 정렬할 다른 [*Features*]입니다.

**반환값:**

[*기능*]

Features 필드를 다른 *Features*의 필드 순서와 일치하도록 재배열합니다.

필드의 순서는 중요하며, 이는 기반이 되는 arrow 데이터에 영향을 미치기 때문입니다. 필드의 순서를 재배치하면 기반이 되는 arrow 데이터 타입을 일치시킬 수 있습니다.

예:

```python
>>> from datasets import Features, List, Value
>>> # let's say we have two features with a different order of nested fields (for a and b for example)
>>> f1 = Features(&amp;lcub;"root": &amp;lcub;"a": Value("string"), "b": Value("string")}})
>>> f2 = Features(&amp;lcub;"root": &amp;lcub;"b": Value("string"), "a": Value("string")}})
>>> assert f1.type != f2.type
>>> # re-ordering keeps the base structure (here List is defined at the root level), but makes the fields order match
>>> f1.reorder_fields_as(f2)
&amp;lcub;'root': List(&amp;lcub;'b': Value('string'), 'a': Value('string')})}
>>> assert f1.reorder_fields_as(f2).type == f2.type
```

### 스칼라[[datasets.Value]]

#### datasets.Value[[datasets.Value]]

```python
datasets.Value(dtype: str, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L511)

**매개변수:**

dtype (`str`) : 데이터 타입의 이름.

특정 데이터 유형의 스칼라 특징 값.

`Value`의 가능한 dtype은 다음과 같습니다:
- `null`
- `bool`
- `int8`
- `int16`
- `int32`
- `int64`
- `uint8`
- `uint16`
- `uint32`
- `uint64`
- `float16`
- `float32` (float의 별칭)
- `float64` (double의 별칭)
- `time32[(s|ms)]`
- `time64[(us|ns)]`
- `timestamp[(s|ms|us|ns)]`
- `timestamp[(s|ms|us|ns), tz=(tzstring)]`
- `date32`
- `date64`
- `duration[(s|ms|us|ns)]`
- `decimal128(precision, scale)`
- `decimal256(precision, scale)`
- `binary`
- `large_binary`
- `binary_view`
- `string`
- `large_string`
- `string_view`

예:

```py
>>> from datasets import Features
>>> features = Features({'stars': Value('int32')})
>>> features
{'stars': Value('int32')}
```

#### datasets.ClassLabel[[datasets.ClassLabel]]

```python
datasets.ClassLabel(num_classes: dataclasses.InitVar[typing.Optional[int]] = None, names: list = None, names_file: dataclasses.InitVar[typing.Optional[str]] = None, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1052)

**매개변수:**

num_classes (`int`, *선택 사항*) : 클래스의 수. 모든 라벨은 `num_classes`보다 작아야 합니다.

names (`list` of `str`, *선택 사항*) : 정수 클래스에 대한 문자열 이름. 제공된 이름의 순서가 유지됩니다.

names_file (`str`, *선택 사항*) : 정수 클래스 이름을 한 줄에 하나씩 담은 파일의 경로.

정수 클래스 라벨에 대한 기능 유형.

`ClassLabel`을 정의하는 방법은 3가지이며, 이는 3개의 인수에 해당합니다:

* `num_classes`: 0부터 (num_classes-1)까지의 라벨을 생성합니다.
* `names`: 라벨 문자열 목록.
* `names_file`: 라벨 목록을 포함하는 파일.

내부적으로 라벨은 정수로 저장됩니다. -1을 사용하여 알려지지 않거나 누락된 라벨을 나타낼 수 있습니다.

예:

```py
>>> from datasets import Features, ClassLabel
>>> features = Features({'label': ClassLabel(num_classes=3, names=['bad', 'ok', 'good'])})
>>> features
{'label': ClassLabel(names=['bad', 'ok', 'good'])}
```

#### cast_storage[[datasets.ClassLabel.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.IntegerArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1217)

**매개변수:**

storage (`Union[pa.StringArray, pa.IntegerArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.Int64Array`

`ClassLabel` 화살표 저장 형식의 배열.

Arrow 배열을 `ClassLabel` arrow 저장 유형으로 캐스팅합니다. `ClassLabel` pyarrow 저장 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()`
- `pa.int()`

#### int2str[[datasets.ClassLabel.int2str]]

```python
int2str(values: typing.Union[int, collections.abc.Iterable])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1171)

`integer` => 클래스 이름 `string` 변환.

알 수 없거나 누락된 라벨에 대해: 음의 정수를 전달하면 `ValueError`가 발생합니다.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].int2str(0)
'neg'
```

#### str2int[[datasets.ClassLabel.str2int]]

```python
str2int(values: typing.Union[str, collections.abc.Iterable])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1126)

변환 클래스 이름 `string` => `integer`.

예:

```py
>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].str2int('neg')
0
```

### 복합[[datasets.LargeList]]

#### datasets.LargeList[[datasets.LargeList]]

```python
datasets.LargeList(feature: typing.Any, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1414)

**매개변수:**

feature (`FeatureType`) : 큰 목록 내 각 항목의 하위 feature 데이터 유형.

자식 feature 데이터 타입으로 구성된 큰 목록 데이터의 feature 타입.

`pyarrow.LargeListType`에 의해 뒷받침되며, 이는 `pyarrow.ListType`와 유사하지만 오프셋이 32비트가 아닌 64비트입니다.

#### datasets.List[[datasets.List]]

```python
datasets.List(feature: typing.Any, length: int = -1, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1386)

**매개변수:**

feature (`FeatureType`) : 큰 목록 내 각 항목의 하위 feature 데이터 유형.

length (선택 사항 `int`, 기본값 -1) : 길이가 고정된 경우 리스트의 길이입니다. 기본값은 -1이며, 이는 길이가 임의임을 의미합니다.

자식 feature 데이터 타입으로 구성된 큰 목록 데이터의 feature 타입.

`pyarrow.ListType`에 기반하며, 32비트 오프셋 또는 고정 길이를 사용합니다.

#### datasets.Sequence[[datasets.Sequence]]

```python
datasets.Sequence(feature = None, length = -1, **kwargs)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1352)

**매개변수:**

feature (`FeatureType`) : 큰 목록 내 각 항목의 하위 feature 데이터 유형.

length (선택 사항 `int`, 기본값 -1) : 길이가 고정된 경우 리스트의 길이입니다. 기본값은 -1이며, 이는 길이가 임의임을 의미합니다.

**반환값:**

`dict` 형태의 하위 기능은 TFDS와의 호환성을 위해 하위 기능의 `dict`로 변환되며, 지정된 기능의 [List](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.List)입니다.

`Sequence`는 내부 딕셔너리 특징을 리스트의 딕셔너리로 자동으로 변환하는 유틸리티입니다. 이 동작은 TensorFlow Datasets 라이브러리와의 호환성 계층을 위해 구현되었지만, 일부 경우에는 원치 않는 동작일 수 있습니다. 이 동작을 원하지 않는 경우 [Sequence](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.Sequence) 대신 [List](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.List) 또는 [LargeList](/docs/datasets/v5.2.0/ko/package_reference/main_classes#datasets.LargeList)를 사용할 수 있습니다.

### 번역[[datasets.Translation]]

#### datasets.Translation[[datasets.Translation]]

```python
datasets.Translation(languages: list, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/translation.py#L12)

**매개변수:**

languages (`dict`) : 각 예제에 대해 문자열 언어 코드를 문자열 번역으로 매핑하는 사전.

`Feature`는 예시별로 고정된 언어를 사용하는 번역에 사용됩니다. 여기서는 tfds와의 호환성을 위해 사용됩니다.

예:

```python
>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': 'le chat',
...         'de': 'die katze'
... }
```

#### flatten[[datasets.Translation.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/translation.py#L44)

Translation 기능을 사전으로 평탄화합니다.

#### datasets.TranslationVariableLanguages[[datasets.TranslationVariableLanguages]]

```python
datasets.TranslationVariableLanguages(languages: typing.Optional[list] = None, num_languages: typing.Optional[int] = None, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/translation.py#L52)

**매개변수:**

languages (`dict`) : 각 예시에 대해 문자열 언어 코드를 하나 이상의 문자열 번역으로 매핑하는 사전. 존재하는 언어는 예시마다 달라질 수 있습니다.

**반환값:** - `language` 또는 `translation` (`tf.string`의 가변 길이 1차원 `tf.Tensor`)

오름차순으로 정렬된 언어 코드 또는 언어 코드와 정렬되도록 정렬된 일반 텍스트 번역

예제별로 언어가 달라지는 번역을 위한 `Feature`입니다. 여기서는 tfds와의 호환성을 위해 사용됩니다.

예:

```python
>>> # At construction time:
>>> datasets.features.TranslationVariableLanguages(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': ['le chat', 'la chatte,']
...         'de': 'die katze'
... }
>>> # Tensor returned :
>>> {
...         'language': ['en', 'de', 'fr', 'fr'],
...         'translation': ['the cat', 'die katze', 'la chatte', 'le chat'],
... }
```

#### flatten[[datasets.TranslationVariableLanguages.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/translation.py#L122)

TranslationVariableLanguages 기능을 사전으로 평탄화합니다.

### 배열[[datasets.Array2D]]

#### datasets.Array2D[[datasets.Array2D]]

```python
datasets.Array2D(shape: tuple, dtype: str, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L608)

**매개변수:**

shape (`tuple`) : 각 차원의 크기.

dtype (`str`) : 데이터 타입의 이름.

2차원 배열을 생성합니다.

예:

```py
>>> from datasets import Features
>>> features = Features({'x': Array2D(shape=(1, 3), dtype='int32')})
```

#### datasets.Array3D[[datasets.Array3D]]

```python
datasets.Array3D(shape: tuple, dtype: str, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L633)

**매개변수:**

shape (`tuple`) : 각 차원의 크기.

dtype (`str`) : 데이터 타입의 이름.

3차원 배열을 생성합니다.

예:

```py
>>> from datasets import Features
>>> features = Features({'x': Array3D(shape=(1, 2, 3), dtype='int32')})
```

#### datasets.Array4D[[datasets.Array4D]]

```python
datasets.Array4D(shape: tuple, dtype: str, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L658)

**매개변수:**

shape (`tuple`) : 각 차원의 크기.

dtype (`str`) : 데이터 타입의 이름.

4차원 배열을 생성합니다.

예:

```py
>>> from datasets import Features
>>> features = Features({'x': Array4D(shape=(1, 2, 2, 3), dtype='int32')})
```

#### datasets.Array5D[[datasets.Array5D]]

```python
datasets.Array5D(shape: tuple, dtype: str, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L683)

**매개변수:**

shape (`tuple`) : 각 차원의 크기.

dtype (`str`) : 데이터 타입의 이름.

5차원 배열을 생성합니다.

예:

```py
>>> from datasets import Features
>>> features = Features({'x': Array5D(shape=(1, 2, 2, 3, 3), dtype='int32')})
```

### 오디오[[datasets.Audio]]

#### datasets.Audio[[datasets.Audio]]

```python
datasets.Audio(sampling_rate: typing.Optional[int] = None, decode: bool = True, num_channels: typing.Optional[int] = None, stream_index: typing.Optional[int] = None, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L24)

**매개변수:**

sampling_rate (`int`, *선택 사항*) : 대상 샘플링 속도. `None`인 경우 네이티브 샘플링 속도가 사용됩니다.

num_channels (`int`, *선택 사항*) : 샘플의 원하는 채널 수입니다. 기본적으로 소스의 채널 수가 사용됩니다. 오디오 디코딩은 (num_channels, num_samples) 모양의 샘플을 반환합니다. 현재 `None` (소스의 채널 수, 기본값), `1` (모노) 또는 `2` (스테레오) 채널이 지원됩니다. `num_channels` 인수는 `torchcodec.decoders.AudioDecoder`에 전달됩니다.

decode (`bool`, 기본값 `True`) : 오디오 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": audio_path, "bytes": audio_bytes}` 형식의 기본 딕셔너리를 반환합니다.

stream_index (`int`, *선택 사항*) : 파일에서 사용할 스트리밍 인덱스입니다. `None`인 경우 "best" 인덱스가 기본값으로 사용됩니다.

오디오 `Feature`는 오디오 파일에서 오디오 데이터를 추출합니다.

Input: Audio 기능은 다음을 입력으로 받습니다:
- `str`: 오디오 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 오디오 파일의 경로 (즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:

  - `path`: 오디오 파일의 아카이브 파일에 대한 상대 경로 문자열.
  - `bytes`: 오디오 파일의 바이트 콘텐츠.

  parquet 또는 webdataset 파일과 같이 오디오 파일을 내장하는 파일에 유용합니다.

- 다음 키를 가진 `dict`:

  - `array`: 오디오 샘플을 포함하는 배열
  - `sampling_rate`: 오디오 샘플의 샘플링 주파수에 해당하는 정수.

- `torchcodec.decoders.AudioDecoder`: torchcodec 오디오 디코더 객체.

Output: 오디오 기능은 `torchcodec.decoders.AudioDecoder` 객체로 출력 데이터를 반환하며, 추가 키가 있습니다:

- `array`: 오디오 샘플을 포함하는 배열
- `sampling_rate`: 오디오 샘플의 샘플링 주파수에 해당하는 정수.

예:

```py
>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=44100, num_channels=2))
>>> ds[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>
>>> audio = ds[0]["audio"]
>>> audio.get_samples_played_in_range(0, 10)
AudioSamples:
    data (shape): torch.Size([2, 110592])
    pts_seconds: 0.0
    duration_seconds: 2.507755102040816
    sample_rate: 44100
```

#### cast_storage[[datasets.Audio.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L237)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Audio arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`

Arrow 배열을 Audio arrow 저장소 유형으로 캐스팅합니다. Audio pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - 오디오 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다

#### decode_example[[datasets.Audio.decode_example]]

```python
decode_example(value: dict, token_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L164)

**매개변수:**

value (`dict`) : 다음 키를 가진 사전: - `path`: 상대 오디오 파일 경로를 나타내는 문자열. - `bytes`: 오디오 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 오디오 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형태의 사전(dict)을 전달할 수 있습니다

**반환값:**

`torchcodec.decoders.AudioDecoder`

Decode example audio file into audio data.

#### embed_storage[[datasets.Audio.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L283)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부. 예: hf:// 또는 https://로 시작하는 경로를 가진 파일

**반환값:** `pa.StructArray`

Audio arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

오디오 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.Audio.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L96)

**매개변수:**

value (`str`, `bytes`,`bytearray`,`dict`, `AudioDecoder`) : Audio 기능에 입력으로 전달되는 데이터.

**반환값:** `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Audio.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/audio.py#L226)

decodable 상태인 경우 오류를 발생시키고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### 이미지[[datasets.Image]]

#### datasets.Image[[datasets.Image]]

```python
datasets.Image(mode: typing.Optional[str] = None, decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L47)

**매개변수:**

mode (`str`, *선택 사항*) : 이미지를 변환할 모드입니다. `None`인 경우 이미지의 기본 모드가 사용됩니다.

decode (`bool`, 기본값 `True`) : 이미지 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": image_path, "bytes": image_bytes}` 형식의 기본 딕셔너리를 반환합니다.

이미지 파일에서 이미지 데이터를 읽는 `Feature`입니다.

Input: Image 기능은 다음을 입력으로 받습니다:
- `str`: 이미지 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 이미지 파일의 경로 (즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:

  - `path`: 아카이브 파일에 대한 이미지 파일의 상대 경로 문자열.
  - `bytes`: 이미지 파일의 바이트.

  이미지 파일을 내장하는 parquet 또는 webdataset 파일에 유용합니다.

- `np.ndarray`: 이미지를 나타내는 NumPy 배열.
- `PIL.Image.Image`: PIL 이미지 객체.

Output: 이미지 기능은 `PIL.Image.Image` 객체로 출력 데이터를 반환합니다.

예:

```py
>>> from datasets import load_dataset, Image
>>> ds = load_dataset("AI-Lab-Makerere/beans", split="train")
>>> ds.features["image"]
Image(decode=True, id=None)
>>> ds[0]["image"]
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at 0x15E52E7F0>
>>> ds = ds.cast_column('image', Image(decode=False))
{'bytes': None,
 'path': '/root/.cache/huggingface/datasets/downloads/extracted/b0a21163f78769a2cf11f58dfc767fb458fc7cea5c05dccc0144a2c0f0bc1292/train/healthy/healthy_train.85.jpg'}
```

#### cast_storage[[datasets.Image.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L216)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray, pa.ListArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Image arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 Image arrow 저장 유형으로 캐스팅합니다. Image pyarrow 저장 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.large_string()` - "path" 데이터를 포함해야 합니다(가능하면 문자열로 변환됩니다)
- `pa.binary()` - 이미지 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다
- `pa.list(*)` - 이미지 배열 데이터를 포함해야 합니다

#### decode_example[[datasets.Image.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L139)

**매개변수:**

value (`str` 또는 `dict`) : 절대 이미지 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리: - `path`: 절대 또는 상대 이미지 파일 경로를 나타내는 문자열. - `bytes`: 이미지 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 이미지 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`PIL.Image.Image`

Decode example image file into image data.

#### embed_storage[[datasets.Image.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L278)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부. 예: hf:// 또는 https://로 시작하는 경로를 가진 파일

**반환값:** `pa.StructArray`

Image arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

이미지 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.Image.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L98)

**매개변수:**

value (`str`, `np.ndarray`, `PIL.Image.Image` 또는 `dict`) : Image feature에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Image.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/image.py#L203)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### Video[[datasets.Video]]

#### datasets.Video[[datasets.Video]]

```python
datasets.Video(decode: bool = True, stream_index: typing.Optional[int] = None, dimension_order: typing.Literal['NCHW', 'NHWC'] = 'NCHW', num_ffmpeg_threads: int = 1, device: typing.Union[str, ForwardRef('torch.device'), NoneType] = 'cpu', seek_mode: typing.Literal['exact', 'approximate'] = 'exact', id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L29)

**매개변수:**

decode (`bool`, 기본값 `True`) : 비디오 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": video_path, "bytes": video_bytes}` 형식의 기본 딕셔너리를 반환합니다.

stream_index (`int`, *선택 사항*) : 파일에서 사용할 스트리밍 인덱스입니다. `None`인 경우 "best" 인덱스가 기본값으로 사용됩니다.

dimension_order (`str`, 기본값 `NCHW`) : 디코딩된 프레임의 차원 순서입니다. 여기서 N은 배치 크기, C는 채널 수, H는 프레임의 높이, W는 프레임의 너비입니다.

num_ffmpeg_threads (`int`, 기본값 `1`) : 비디오 디코딩에 사용할 스레드 수입니다. (1로 유지하는 것을 권장합니다)

device (`str` 또는 `torch.device`, 기본값 `cpu`) : 비디오를 디코딩할 때 사용할 장치입니다.

seek_mode (`str`, 기본값 `exact`) : 프레임 접근 방식이 “exact”인지 “approximate”인지를 결정합니다. Exact는 프레임 i를 요청하면 항상 프레임 i가 반환되도록 보장하지만, 이를 위해 파일의 초기 스캔이 필요합니다. Approximate는 파일을 스캔하지 않으므로 더 빠르지만, 파일의 메타데이터를 사용하여 i의 위치를 추정하기 때문에 정확도가 낮습니다. 자세한 내용은 [여기](https://docs.pytorch.org/torchcodec/stable/generated_examples/approximate_mode.html#sphx-glr-generated-examples-approximate-mode-py)에서 확인하세요.

`Feature`를 사용하여 비디오 파일에서 비디오 데이터를 읽습니다.

입력: Video 기능은 다음을 입력으로 받습니다:
- `str`: 비디오 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 비디오 파일의 경로 (즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:

  - `path`: 데이터셋 저장소에서 비디오 파일의 상대 경로를 나타내는 문자열.
  - `bytes`: 비디오 파일의 바이트 수.

  parquet 또는 webdataset 파일과 같이 비디오 파일을 내장하는 파일에 유용합니다.

- `torchcodec.decoders.VideoDecoder`: torchcodec 비디오 디코더 객체.

Output: The Video features 출력 데이터는 `torchcodec.decoders.VideoDecoder` 객체입니다.

예:

```py
>>> from datasets import Dataset, Video
>>> ds = Dataset.from_dict({"video":["path/to/Screen Recording.mov"]}).cast_column("video", Video())
>>> ds.features["video"]
Video(decode=True, id=None)
>>> ds[0]["video"]
<torchcodec.decoders._video_decoder.VideoDecoder object at 0x14a61e080>
>>> video = ds[0]["video"]
>>> video.get_frames_in_range(0, 10)
FrameBatch:
data (shape): torch.Size([10, 3, 50, 66])
pts_seconds: tensor([0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333,
        0.4333], dtype=torch.float64)
duration_seconds: tensor([0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167,
        0.0167], dtype=torch.float64)
>>> ds.cast_column('video', Video(decode=False))[0]["video]
{'bytes': None,
 'path': 'path/to/Screen Recording.mov'}
```

#### cast_storage[[datasets.Video.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L242)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray, pa.ListArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Video arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 Video arrow 저장소 유형으로 캐스팅합니다. Video pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - 비디오 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다
- `pa.list(*)` - 비디오 배열 데이터를 포함해야 합니다

#### decode_example[[datasets.Video.decode_example]]

```python
decode_example(value: typing.Union[str, datasets.features.video.Example], token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L153)

**매개변수:**

value (`str` 또는 `dict`) : 절대 비디오 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리: - `path`: 절대 또는 상대 비디오 파일 경로를 나타내는 문자열. - `bytes`: 비디오 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 비디오 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`torchcodec.decoders.VideoDecoder`

Decode example video file into video data.

#### embed_storage[[datasets.Video.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L294)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부. 예: hf:// 또는 https://로 시작하는 경로를 가진 파일

**반환값:** `pa.StructArray`

Video arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

이미지 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.Video.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L105)

**매개변수:**

value (`str`, `np.ndarray`, `bytes`, `bytearray`, `VideoDecoder` 또는 `dict`) : Video feature에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Video.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/video.py#L229)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### 메시[[datasets.Mesh]]

#### datasets.Mesh[[datasets.Mesh]]

```python
datasets.Mesh(decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L23)

**매개변수:**

decode (`bool`, 기본값 `True`) : 메시 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": mesh_path, "bytes": mesh_bytes}` 형식의 기본 딕셔너리를 반환합니다. 메시 디코딩은 `trimesh`를 사용하며 `.glb`, `.gltf`, `.ply`, `.stl` 파일을 지원합니다.

`Feature`를 사용하여 파일에서 3D 메시 데이터를 읽습니다.

Input: Mesh 기능은 다음을 입력으로 받습니다:
- `str`: 메시 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 메시 파일의 경로(즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:

  - `path`: 아카이브 파일에 대한 메시 파일의 상대 경로 문자열.
  - `bytes`: 메시 파일의 바이트.

  parquet 또는 webdataset 파일과 같이 메시 파일을 내장하는 파일에 유용합니다.

- `trimesh.Trimesh` 또는 `trimesh.Scene`: 3D 메시 또는 씬 객체.

Output: Mesh 기능은 데이터를 `trimesh.Trimesh` 또는 `trimesh.Scene` 객체로 출력합니다.

#### cast_storage[[datasets.Mesh.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L162)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Mesh arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 Mesh arrow 저장소 유형으로 캐스팅합니다. Mesh pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.large_string()` - "path" 데이터를 포함해야 합니다(가능하면 문자열로 변환됩니다)
- `pa.binary()` - 메시 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다

#### decode_example[[datasets.Mesh.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L91)

**매개변수:**

value (`dict`) : 다음 키를 가진 사전: - `path`: 절대 또는 상대 메시 파일 경로를 나타내는 문자열. - `bytes`: 메시 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 메시 파일을 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`trimesh.Trimesh` 또는 `trimesh.Scene`

Decode example mesh file.

#### embed_storage[[datasets.Mesh.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L215)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부.

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부.

**반환값:** `pa.StructArray`

Mesh arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열에 메시 파일을 임베드합니다.

#### encode_example[[datasets.Mesh.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L57)

**매개변수:**

value (`str`, `bytes`, `dict`, `trimesh.Trimesh` 또는 `trimesh.Scene`) : Mesh 기능에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Mesh.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/mesh.py#L149)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### Json[[datasets.Json]]

#### datasets.Json[[datasets.Json]]

```python
datasets.Json(decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1258)

JSON 객체의 Feature type입니다.

내부적으로 객체는 JSON 인코딩된 문자열로 저장됩니다.

예:

```py
>>> from datasets import Features, Json
>>> features = Features({'json': Json()})
>>> features
{'json': Json()}
```

```py
>>> from datasets import Dataset, Features, Json, List
>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> # OR
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> ds[0]
{'a': [{'b': 0}, {'c': 0}]}
>>> def f(x):
...     for y in x["a"]:
...         y["d"] = "foo"
...     return x
>>> ds = ds.map(f)
>>> ds.features
>>> ds[0]
{'a': [{'b': 0, 'd': 'foo'}, {'c': 0, 'd': 'foo'}]}
```

#### cast_storage[[datasets.Json.cast_storage]]

```python
cast_storage(storage: Array)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/features.py#L1321)

**매개변수:**

storage (`Union[pa.StringArray, pa.IntegerArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.JsonArray`

`Json` 화살표 저장 형식의 배열.

Arrow 배열을 `Json` arrow 저장 유형으로 캐스팅합니다.

### Pdf[[datasets.Pdf]]

#### datasets.Pdf[[datasets.Pdf]]

```python
datasets.Pdf(decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L31)

**매개변수:**

decode (`bool`, 기본값 `True`) : pdf 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": pdf_path, "bytes": pdf_bytes}` 형식의 기본 딕셔너리를 반환합니다.

**실험적 기능.** PDF 파일을 통해 PDF 문서를 읽는 `Feature`.

Input: Pdf 기능은 다음을 입력으로 받습니다:
- `str`: pdf 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: pdf 파일의 경로 (즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:
  - `path`: 데이터셋 저장소에서 PDF 파일의 상대 경로를 나타내는 문자열.
  - `bytes`: pdf 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.

- `pdfplumber.pdf.PDF`: pdfplumber pdf 객체.

예:

```py
>>> from datasets import Dataset, Pdf
>>> ds = Dataset.from_dict({"pdf": ["path/to/pdf/file.pdf"]}).cast_column("pdf", Pdf())
>>> ds.features["pdf"]
Pdf(decode=True, id=None)
>>> ds[0]["pdf"]
<pdfplumber.pdf.PDF object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("pdf", Pdf(decode=False))
>>> ds[0]["pdf"]
{'bytes': None,
'path': 'path/to/pdf/file.pdf'}
```

#### cast_storage[[datasets.Pdf.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L183)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray, pa.ListArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Pdf 화살표 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 Pdf arrow 저장소 유형으로 캐스팅합니다. Pdf pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - 이미지 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다
- `pa.list(*)` - pdf 배열 데이터를 포함해야 합니다

#### decode_example[[datasets.Pdf.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L113)

**매개변수:**

value (`str` 또는 `dict`) : 절대 pdf 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리: - `path`: 절대 또는 상대 pdf 파일 경로를 나타내는 문자열. - `bytes`: pdf 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 PDF 파일을 접근하고 디코딩하려면, repo_id (`str`) -> token (`bool` 또는 `str`) 형태의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`pdfplumber.pdf.PDF`

PDF 파일 예제를 PDF 데이터로 디코딩합니다.

#### embed_storage[[datasets.Pdf.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L220)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부. 예: hf:// 또는 https://로 시작하는 경로를 가진 파일

**반환값:** `pa.StructArray`

PDF 화살표 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

PDF 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.Pdf.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L78)

**매개변수:**

value (`str`, `bytes`, `pdfplumber.pdf.PDF` 또는 `dict`) : Pdf 기능에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Pdf.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/pdf.py#L170)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### Nifti[[datasets.Nifti]]

#### datasets.Nifti[[datasets.Nifti]]

```python
datasets.Nifti(decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L64)

**매개변수:**

decode (`bool`, 기본값 `True`) : NIfTI 데이터를 디코딩할지 여부입니다. `False`인 경우 바이트 문자열이 반환됩니다. 예시를 디코딩할 때 `decode=False`는 지원되지 않습니다.

**실험적 기능입니다.** NIfTI 신경영상 파일을 읽기 위한 Nifti `Feature`.

Input: Nifti 기능은 다음을 입력으로 받습니다:
- `str`: NIfTI 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: NIfTI 파일의 경로(즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:
  - `path`: 데이터셋 저장소에서 NIfTI 파일의 상대 경로를 나타내는 문자열.
  - `bytes`: NIfTI 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.

- `nibabel` 이미지 객체(예: `nibabel.nifti1.Nifti1Image`).

예:

```py
>>> from datasets import Dataset, Nifti
>>> ds = Dataset.from_dict({"nifti": ["path/to/file.nii.gz"]}).cast_column("nifti", Nifti())
>>> ds.features["nifti"]
Nifti(decode=True, id=None)
>>> ds[0]["nifti"]
<nibabel.nifti1.Nifti1Image object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("nifti", Nifti(decode=False))
>>> ds[0]["nifti"]
{'bytes': None,
'path': 'path/to/file.nii.gz'}
```

#### cast_storage[[datasets.Nifti.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.BinaryArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L298)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray, pa.BinaryArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

Nifti 화살표 저장 형식의 배열, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 Nifti arrow 저장소 유형으로 캐스팅합니다. Nifti pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - NIfTI 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다

#### decode_example[[datasets.Nifti.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L150)

**매개변수:**

value (`str` 또는 `dict`) : 절대 NIfTI 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리: - `path`: 절대 또는 상대 NIfTI 파일 경로를 나타내는 문자열. - `bytes`: NIfTI 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 NIfTI 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`nibabel.Nifti1Image` 객체

NIfTI 파일 예시를 nibabel 이미지 객체로 디코딩합니다.

#### embed_storage[[datasets.Nifti.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L216)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부. 예: hf:// 또는 https://로 시작하는 경로를 가진 파일

**반환값:** `pa.StructArray`

NifTI 화살표 저장 형식의 배열, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

NifTI 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.Nifti.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L110)

**매개변수:**

value (`str`, `bytes`, `nibabel.Nifti1Image` 또는 `dict`) : Nifti 기능에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.Nifti.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/nifti.py#L285)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### BioSequence[[datasets.BioSequence]]

#### datasets.BioSequence[[datasets.BioSequence]]

```python
datasets.BioSequence(format: str = 'fasta', decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L44)

**매개변수:**

format (`str`, 기본값 `"fasta"`) : `Bio.SeqIO`가 인식하는 시퀀스 형식의 이름입니다. 일반적인 값은 `"fasta"`, `"fastq"`, `"genbank"`입니다.

decode (`bool`, 기본값 `True`) : 시퀀스 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": path, "bytes": bytes}` 형식의 기본 딕셔너리를 반환합니다.

**실험적 기능.** 시퀀스 파일에서 생물학적 시퀀스 레코드를 읽기 위한 BioSequence `Feature`.

시퀀스 파일에는 식별자 및 주석이 포함된 잔기(residue) 레코드가 하나 이상 저장됩니다. FASTA, FASTQ, GenBank은 이 수준에서 동일한 형태를 가지며, 사용된 파서만 다를 뿐입니다. 따라서 `format`은 유형이 아니라 파서를 선택합니다.

Input: BioSequence 기능은 다음을 입력으로 받습니다:
- `str`: 시퀀스 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 시퀀스 파일의 경로(즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:
  - `path`: 데이터셋 저장소에서 시퀀스 파일의 상대 경로를 나타내는 문자열.
  - `bytes`: 시퀀스 파일의 바이트입니다. 순차 접근이 필요한 아카이브 파일에 유용합니다.

- `Bio.SeqRecord.SeqRecord`: biopython 시퀀스 레코드.

예:

```py
>>> from datasets import Dataset, BioSequence
>>> ds = Dataset.from_dict({"seq": ["path/to/sequences.fasta"]}).cast_column("seq", BioSequence())
>>> ds.features["seq"]
BioSequence(format='fasta', decode=True)
>>> ds[0]["seq"]
SeqRecord(seq=Seq('ACGT'), id='seq1', name='seq1', description='seq1', dbxrefs=[])
>>> ds = ds.cast_column("seq", BioSequence(decode=False))
>>> ds[0]["seq"]
{'bytes': None,
'path': 'path/to/sequences.fasta'}
```

#### cast_storage[[datasets.BioSequence.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L199)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

BioSequence arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`.

Arrow 배열을 BioSequence arrow 저장소 유형으로 캐스팅합니다. BioSequence pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - 파일 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다

#### decode_example[[datasets.BioSequence.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L132)

**매개변수:**

value (`str` 또는 `dict`) : 절대 파일 경로를 나타내는 문자열 또는 다음 키를 가진 사전: - `path`: 절대 또는 상대 파일 경로를 나타내는 문자열. - `bytes`: 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`Bio.SeqRecord.SeqRecord`

Decode example sequence file into a biopython record.

file에는 여러 레코드가 포함될 수 있습니다. 이 경우 한 행이 하나의 레코드이므로 첫 번째 레코드가 반환됩니다. 여러 레코드가 포함된 파일을 레코드당 한 행으로 확장하려면 패키지에 포함된 시퀀스 로더를 사용하세요.

#### embed_storage[[datasets.BioSequence.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L219)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부.

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부.

**반환값:** `pa.StructArray`

BioSequence arrow 저장 형식의 Array.

시퀀스 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.BioSequence.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L99)

**매개변수:**

value (`str`, `bytes`, `Bio.SeqRecord.SeqRecord` 또는 `dict`) : BioSequence 기능에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.BioSequence.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_sequence.py#L186)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

### BioStructure[[datasets.BioStructure]]

#### datasets.BioStructure[[datasets.BioStructure]]

```python
datasets.BioStructure(format: str = 'pdb', decode: bool = True, id: typing.Optional[str] = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L48)

**매개변수:**

format (`str`, 기본값 `"pdb"`) : 구조 형식, `"pdb"` 또는 `"mmcif"`.

decode (`bool`, 기본값 `True`) : 구조 데이터를 디코딩할지 여부입니다. `False`인 경우 `{"path": path, "bytes": bytes}` 형식의 기본 딕셔너리를 반환합니다.

**실험적 기능.** 구조 파일에서 거대 분자 구조를 읽기 위한 BioStructure `Feature`.

구조 파일은 분자의 원자 3차원 좌표를 체인(chain)과 잔기(residue)로 그룹화하여 저장합니다. PDB와 mmCIF는 동일한 객체를 기술하며 파서만 다르므로, `format`은 유형이 아닌 파서를 선택합니다.

Input: BioStructure 기능은 다음을 입력으로 받습니다:
- `str`: 구조 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).
- `pathlib.Path`: 구조 파일의 경로(즉, 랜덤 액세스가 허용됨).
- 다음 키를 가진 `dict`:
  - `path`: 데이터셋 저장소에서 구조 파일의 상대 경로를 나타내는 문자열.
  - `bytes`: 구조 파일의 바이트입니다. 순차 접근이 필요한 아카이브 파일에 유용합니다.

- `Bio.PDB.Structure.Structure`: biopython 구조.

예:

```py
>>> from datasets import Dataset, BioStructure
>>> ds = Dataset.from_dict({"st": ["path/to/1abc.pdb"]}).cast_column("st", BioStructure())
>>> ds.features["st"]
BioStructure(format='pdb', decode=True)
>>> ds[0]["st"]
<Structure id=1abc>
>>> ds = ds.cast_column("st", BioStructure(decode=False))
>>> ds[0]["st"]
{'bytes': None,
'path': 'path/to/1abc.pdb'}
```

#### cast_storage[[datasets.BioStructure.cast_storage]]

```python
cast_storage(storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L204)

**매개변수:**

storage (`Union[pa.StringArray, pa.StructArray]`) : 캐스팅할 PyArrow 배열.

**반환값:** `pa.StructArray`

BioStructure arrow 저장 형식의 Array, 즉 `pa.struct({"bytes": pa.binary(), "path": pa.string()})`입니다.

Arrow 배열을 BioStructure arrow 저장 유형으로 캐스팅합니다. BioStructure pyarrow 저장 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

- `pa.string()` - "path" 데이터를 포함해야 합니다
- `pa.binary()` - 파일 바이트를 포함해야 합니다
- `pa.struct({"bytes": pa.binary()})`
- `pa.struct({"path": pa.string()})`
- `pa.struct({"bytes": pa.binary(), "path": pa.string()})` - 순서는 중요하지 않습니다

#### decode_example[[datasets.BioStructure.decode_example]]

```python
decode_example(value: dict, token_per_repo_id = None)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L138)

**매개변수:**

value (`str` 또는 `dict`) : 절대 파일 경로를 나타내는 문자열 또는 다음 키를 가진 사전: - `path`: 절대 또는 상대 파일 경로를 나타내는 문자열. - `bytes`: 파일의 바이트.

token_per_repo_id (`dict`, *선택 사항*) : Hub의 비공개 저장소에서 파일에 액세스하고 디코딩하려면 repo_id (`str`) -> token (`bool` 또는 `str`) 형식의 사전(dict)을 전달할 수 있습니다.

**반환값:**

`Bio.PDB.Structure.Structure`

Decode example structure file을 biopython 구조로 변환합니다.

#### embed_storage[[datasets.BioStructure.embed_storage]]

```python
embed_storage(storage: StructArray, token_per_repo_id = None, local_files: bool = True, remote_files: bool = True)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L224)

**매개변수:**

storage (`pa.StructArray`) : 임베드할 PyArrow 배열.

token_per_repo_id (`dict`, 선택 사항) : 파일 바이트를 가져오기 위한 repo_id -> 토큰 사전.

local_files (`bool`, 기본값 `True`) : 로컬 파일 데이터를 배열에 임베드할지 여부.

remote_files (`bool`, 기본값 `True`) : 원격 파일 데이터를 배열에 임베드할지 여부.

**반환값:** `pa.StructArray`

BioStructure arrow 저장 형식의 Array.

구조 파일을 Arrow 배열에 임베드합니다.

#### encode_example[[datasets.BioStructure.encode_example]]

```python
encode_example(value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')])
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L105)

**매개변수:**

value (`str`, `bytes`, `Bio.PDB.Structure.Structure` 또는 `dict`) : BioStructure 기능에 입력으로 전달되는 데이터.

**반환값:**

"path"과 "bytes" 필드가 있는 `dict`

Arrow 형식으로 예시를 인코딩합니다.

#### flatten[[datasets.BioStructure.flatten]]

```python
flatten()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/features/bio_structure.py#L191)

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

## 파일 시스템[[datasets.filesystems.is_remote_filesystem]]

#### datasets.filesystems.is_remote_filesystem[[datasets.filesystems.is_remote_filesystem]]

```python
datasets.filesystems.is_remote_filesystem(fs: AbstractFileSystem)
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/filesystems/__init__.py#L33)

**매개변수:**

fs (`fsspec.spec.AbstractFileSystem`) : 파이썬 스타일의 파일 시스템을 위한 추상적 슈퍼 클래스입니다. 예를 들어 `fsspec.filesystem('file')` 또는 `s3fs.S3FileSystem` 등이 있습니다.

`fs`가 원격 파일 시스템인지 확인합니다.

## 지문[[datasets.fingerprint.Hasher]]

#### datasets.fingerprint.Hasher[[datasets.fingerprint.Hasher]]

```python
datasets.fingerprint.Hasher()
```

[소스](https://github.com/huggingface/datasets/blob/5.2.0/src/datasets/fingerprint.py#L196)

Python 객체를 입력으로 받는 해셔

