대규모 데이터 처리를 단순화하는 numpy 슬라이싱 기술 알아보기

王林
풀어 주다: 2024-01-26 08:59:19
원래의
1112명이 탐색했습니다.

대규모 데이터 처리를 단순화하는 numpy 슬라이싱 기술 알아보기

Numpy 슬라이싱 작업 방법을 익히고 대규모 데이터를 쉽게 처리하세요. 구체적인 코드 예제가 필요합니다.

요약:
대규모 데이터를 처리할 때는 적절한 도구를 사용하는 것이 매우 중요합니다. Numpy는 고성능 수치 계산 도구를 제공하는 Python에서 일반적으로 사용되는 라이브러리입니다. 이번 글에서는 Numpy의 슬라이싱 연산 방식을 소개하고, 대규모 데이터 처리 시 데이터를 쉽게 연산하고 추출하는 방법을 코드 예제를 통해 보여드리겠습니다.

  1. 소개
    Numpy는 Python에서 일반적으로 사용되는 수치 계산 라이브러리로, 효율적인 데이터 처리 도구를 제공합니다. 슬라이싱 작업은 Numpy의 매우 강력한 기능으로, 배열 요소에 빠르게 액세스하고 작업하는 데 사용할 수 있습니다. 슬라이싱 작업은 1차원, 2차원 및 다차원 배열에 대해 유연한 작업을 수행할 수 있으므로 루프 작성 프로세스가 절약되고 작업 속도가 향상됩니다.
  2. 1차원 배열 슬라이싱
    먼저 1차원 배열의 슬라이싱 작업 방법을 살펴보겠습니다. 10개의 요소를 포함하는 1차원 배열 a가 있다고 가정합니다.
import numpy as np

a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
로그인 후 복사

콜론:을 사용하여 슬라이스 범위를 지정할 수 있습니다. 샘플 코드는 다음과 같습니다.

# 切片操作
b = a[2:6]  # 从下标2到下标5的元素
print(b)  # 输出:[2 3 4 5]

c = a[:4]  # 从开头到下标3的元素
print(c)  # 输出:[0 1 2 3]

d = a[6:]  # 从下标6到末尾的元素
print(d)  # 输出:[6 7 8 9]

e = a[::3]  # 每隔2个元素取一个
print(e)  # 输出:[0 3 6 9]
로그인 후 복사
  1. 2차원 배열 슬라이싱
    다음으로 2차원 배열의 슬라이싱 연산 방법을 살펴보겠습니다. 2x3 2차원 배열 b가 있다고 가정합니다.
b = np.array([[0, 1, 2],
              [3, 4, 5]])
로그인 후 복사

쉼표를 사용하여 슬라이스의 범위를 지정할 수 있습니다. 샘플 코드는 다음과 같습니다.

# 切片操作
c = b[0]  # 提取第0行的元素
print(c)  # 输出:[0 1 2]

d = b[:, 1]  # 提取所有行的第1列元素
print(d)  # 输出:[1 4]

e = b[:2, 1:]  # 提取前两行以及第二列之后的元素
print(e)  # 输出:[[1 2]
           #       [4 5]]
로그인 후 복사
  1. 다차원 배열 슬라이싱
    다차원 배열을 다룰 때 슬라이싱 작업도 매우 편리합니다. 3x3x3 3차원 배열 c가 있다고 가정합니다.
c = np.array([[[0, 1, 2],
               [3, 4, 5],
               [6, 7, 8]],
              [[9, 10, 11],
               [12, 13, 14],
               [15, 16, 17]],
              [[18, 19, 20],
               [21, 22, 23],
               [24, 25, 26]]])
로그인 후 복사

쉼표 수를 늘려 슬라이스의 범위를 지정할 수 있습니다. 샘플 코드는 다음과 같습니다.

# 切片操作
d = c[0]  # 提取第0个二维数组
print(d)  # 输出:[[0 1 2]
           #       [3 4 5]
           #       [6 7 8]]

e = c[:, 1, :]  # 提取所有二维数组的第1行的元素
print(e)  # 输出:[[ 3  4  5]
           #       [12 13 14]
           #       [21 22 23]]

f = c[:, :, ::2]  # 提取所有二维数组的每隔一个元素的列
print(f)  # 输出:[[[ 0  2]
           #        [ 3  5]
           #        [ 6  8]]
           #       [[ 9 11]
           #        [12 14]
           #        [15 17]]
           #       [[18 20]
           #        [21 23]
           #        [24 26]]]
로그인 후 복사
  1. Summary
    이 글에서는 Numpy의 슬라이싱 연산 방법을 소개하고, 슬라이싱 연산을 사용하여 대규모 데이터를 쉽게 처리하는 방법을 구체적인 코드 예제를 통해 보여줍니다. 슬라이싱 작업은 1차원, 2차원 및 다차원 배열에 대해 유연한 작업을 수행할 수 있으므로 데이터 처리 효율성과 코드 가독성을 크게 향상시킬 수 있습니다. Numpy의 슬라이싱 작업 방법을 익히면 대용량 데이터 처리가 더 쉬워집니다.

참조:

  • Travis E, Oliphant(2006) NumPy 미국 가이드: Trelgol Publishing
  • https://numpy.org/doc/stable/reference/
  • https://numpy org/doc/stable/user/quickstart.html

코드 예:

import numpy as np

# 一维数组切片
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b = a[2:6]
c = a[:4]
d = a[6:]
e = a[::3]

# 二维数组切片
b = np.array([[0, 1, 2],
              [3, 4, 5]])
c = b[0]
d = b[:, 1]
e = b[:2, 1:]

# 多维数组切片
c = np.array([[[0, 1, 2],
               [3, 4, 5],
               [6, 7, 8]],
              [[9, 10, 11],
               [12, 13, 14],
               [15, 16, 17]],
              [[18, 19, 20],
               [21, 22, 23],
               [24, 25, 26]]])
d = c[0]
e = c[:, 1, :]
f = c[:, :, ::2]
로그인 후 복사

위 내용은 대규모 데이터 처리를 단순화하는 numpy 슬라이싱 기술 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿