>  기사  >  백엔드 개발  >  데이터 과학 워크플로를 최적화하기 위해 올바른 numpy 버전을 선택하는 방법

데이터 과학 워크플로를 최적화하기 위해 올바른 numpy 버전을 선택하는 방법

WBOY
WBOY원래의
2024-01-19 09:23:151398검색

데이터 과학 워크플로를 최적화하기 위해 올바른 numpy 버전을 선택하는 방법

numpy는 Python에서 일반적으로 사용되는 수학 연산 라이브러리로, 강력한 배열 연산과 수치 계산 기능을 제공합니다. 그러나 numpy 버전은 지속적으로 업데이트되므로 사용자가 적절한 버전을 선택하는 방법이 중요한 문제가 되었습니다. 올바른 numpy 버전을 선택하면 데이터 과학 워크플로를 최적화하고 코드의 유지 관리성과 가독성을 향상시킬 수 있습니다. 이 기사에서는 numpy 버전을 선택하는 방법을 소개하고 독자가 참조할 수 있도록 실제 코드 예제를 제공합니다.

1. 다양한 numpy 버전의 특징을 이해하세요

numpy 라이브러리는 매우 빠르게 업데이트되며 최신 버전은 1.21.2입니다. numpy를 사용할 때 다양한 버전 간의 변경 사항과 특성을 이해하면 적절한 numpy 버전을 선택하고 코드의 효율성과 유지 관리성을 향상시키는 데 도움이 될 수 있습니다. numpy의 주요 버전에는 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20 및 1.21이 있습니다. 버전 간 주요 변경 사항은 다음과 같습니다.

버전 기능
1.11 - np.random.choicenp.random.permutation 기능 도입np.random.choicenp.random.permutation函数

  • 增加了np.histogramdd函数
  • 提升了性能和稳定性
    1.12 - 引入了对MATLAB格式文件的读写支持
  • 优化了对Structured Arrays的支持
  • 使得在某些情况下的性能得到显著提升
    1.13 - 引入了对改进版的UMFPACK的支持
  • 增加了np.isclose函数
  • 提升了对Polynomials的支持
    1.14 - 移除了一些过时的函数和属性
  • 引入了支持多线程计算的np.matmul函数
  • 对文档进行了优化
    1.15 - 引入了针对Pandas的兼容性增强功能
  • 改进了np.loadtxtnp.genfromtxt函数
  • 改进了多维数组的分段和切片操作
    1.16 - 引入了布尔类型的掩码数组
  • 增加了np.piecewise函数
  • 改进了性能和稳定性
    1.17 - 引入了np.stack函数
  • 添加了针对Structured arrays的新特性
  • 对文档和性能进行了优化
    1.18 - 引入了np.moveaxis函数
  • 添加了np.copyto函数
  • 改进了np.count_nonzeronp.bincount函数
    1.19 - 引入了np.compress函数
  • 添加了np.isin函数
  • 改进了np.promote_types函数
    1.20 - 引入了np.histogram_bin_edges函数
  • 添加了np.searchsorted函数
  • 改进了np.unique函数的性能
    1.21 - 引入了np.linalg.lstsq函数的rcond参数
  • 引入了np.cell函数
  • 引入了np.format_float_positional函数

从上表可以看出,numpy的每个版本都有不同的变化和优化。在选择numpy版本时,需要结合具体需求和使用场景,选择相应版本。如果需要使用某个新特性或者解决某个特定问题,可以选择较新的版本。如果考虑稳定性和向下兼容性,可以选择较旧的版本。

2.如何更换numpy版本

在Python中,可以使用pip命令安装和更换numpy版本。以下是更换numpy版本的步骤:

  • 首先,可以通过pip list命令查看当前已安装的numpy版本。例如,使用以下命令检查numpy版本:
!pip list | grep numpy

输出:

numpy                1.19.5

该结果显示当前安装的numpy版本为1.19.5。

  • 为了更换numpy版本,需要先卸载当前版本,然后再安装新的版本。可以使用以下代码安装和卸载numpy:
# 卸载numpy
!pip uninstall -y numpy 

# 安装新的numpy版本
!pip install numpy==1.20

在代码中numpy==1.20表示安装1.20版本,读者可以根据需要选择合适版本号进行安装。

3.使用numpy的优化技巧

除了选择合适的numpy版本之外,针对具体的数据科学问题,还可以采用一些numpy的优化技巧,提高代码的效率和可读性。以下是几个实用的numpy优化技巧的示例:

(1) 使用numpy的向量化计算

numpy使得向量化计算变得非常容易。处理大量数据时,使用向量化计算比逐个元素地循环计算更快。以下是一个例子,实现对两个数组的逐个元素求和:

import numpy as np

# 生成两个向量
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])

# 使用循环计算元素和
c = np.zeros(len(a))
for i in range(len(a)):
    c[i] = a[i] + b[i]

# 使用向量化计算元素和
d = a + b

# 输出结果
print(c)   # [ 6.  8. 10. 12.]
print(d)   # [ 6  8 10 12]

从上例可以看出,使用向量化计算可以大大简化代码,同时提高效率。

(2) 使用numpy的广播功能

numpy的广播(broadcast)功能是一种非常强大的工具,它可以让不同形状的数组之间进行数学计算。广播的规则可以使得一些计算变得非常简单。下面是一个例子,实现两个形状不同的数组的相加:

import numpy as np

# 生成两个数组
a = np.array([[ 0.0,  0.0,  0.0],
              [10.0, 10.0, 10.0],
              [20.0, 20.0, 20.0],
              [30.0, 30.0, 30.0]])
b = np.array([1.0, 2.0, 3.0])

# 使用广播计算元素和
c = a + b

# 输出结果
print(c)

该代码片段将数字1、2和3视为一个列向量,将其与a

  • 추가됨 np.histogramdd 함수
  • 향상된 성능 및 안정성 1.12 - MATLAB 형식 파일에 대한 읽기 및 쓰기 지원 도입
  • 구조적 배열에 대한 지원 최적화
  • 어떤 경우에는 성능이 크게 향상됩니다.

    1.13 - 향상된 UMFPACK 버전에 대한 지원 도입

  • np.isclose기능 추가
  • 향상된 UMFPACK 버전에 대한 지원 다항식 1.14 - 일부 사용되지 않는 함수 및 속성 제거
  • 멀티 스레드 계산을 지원하기 위해 np.matmul함수
  • 문서화 최적화 🎜1.15 - 호환성 향상 도입 Pandas용
  • 향상된 np.loadtxtnp.genfromtxt 함수
  • 다차원 배열의 향상된 분할 및 슬라이싱 작업 🎜 1.16 - 부울 유형 마스크 배열 도입
  • np .piecewise 기능 추가
  • 성능 및 안정성 향상 🎜1.17 - np.stack도입 > 함수
  • 구조적 배열을 위한 새로운 함수 추가됨 기능
  • 문서화 및 성능 최적화 🎜1.18 - np.moveaxis 함수 도입
  • 추가됨 np.copyto 함수
  • 향상된 np.count_nonzeronp.bincount 함수 🎜1.19 - np가 도입되었습니다. 압축 함수 li>
  • np.isin 함수 추가
  • 향상된 np.promote_types 함수 🎜1.20 - 도입됨 np.histogram_bin_edges함수
  • np.searchsorted 함수 추가
  • np.unique성능 향상 > 함수 🎜1.21 - 도입 np.linalg.lstsq 함수의 rcond 매개변수 추가
  • np.cell도입 > 함수
  • np.format_float_positional 함수 도입
🎜위 표에서 볼 수 있듯이 numpy의 각 버전에는 서로 다른 변경 사항과 최적화가 있습니다. numpy 버전을 선택할 때 특정 요구 사항과 사용 시나리오에 따라 해당 버전을 선택해야 합니다. 새로운 기능을 사용하거나 특정 문제를 해결해야 하는 경우 최신 버전을 선택할 수 있습니다. 안정성과 이전 버전과의 호환성을 고려한다면 이전 버전을 선택해도 됩니다. 🎜🎜2. numpy 버전을 변경하는 방법🎜🎜Python에서는 pip 명령을 사용하여 numpy 버전을 설치하고 변경할 수 있습니다. numpy 버전을 변경하는 단계는 다음과 같습니다. 🎜
  • 먼저 pip list 명령을 통해 현재 설치된 numpy 버전을 확인할 수 있습니다. 예를 들어 다음 명령을 사용하여 numpy 버전을 확인합니다.
import numpy as np

# 生成一个数组
a = np.array([[ 0,  1,  2,  3],
              [10, 11, 12, 13],
              [20, 21, 22, 23],
              [30, 31, 32, 33],
              [40, 41, 42, 43]])

# 切片选择子数组
b = a[:, 1:3]

# 输出子数组
print(b)
🎜출력: 🎜
[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]]
🎜 결과는 현재 설치된 numpy 버전이 1.19.5임을 보여줍니다. 🎜
  • numpy 버전을 변경하려면 먼저 현재 버전을 제거한 후 새 버전을 설치해야 합니다. 다음 코드를 사용하여 numpy를 설치하고 제거할 수 있습니다.
import numpy as np

# 生成一个数组
a = np.array([[ 0,  1,  2,  3],
              [10, 11, 12, 13],
              [20, 21, 22, 23],
              [30, 31, 32, 33],
              [40, 41, 42, 43]])

# 使用索引选择特定元素
b = a[[0, 1, 2, 3], [1, 2, 3, 0]]

# 输出选中的元素
print(b)
🎜코드에서 numpy==1.20는 버전 1.20을 설치한다는 의미입니다. 독자는 적절한 버전 번호를 선택할 수 있습니다. 그들의 필요에 따라 설치하십시오. 🎜🎜3. numpy 최적화 기술 사용🎜🎜적절한 numpy 버전을 선택하는 것 외에도 일부 numpy 최적화 기술을 사용하여 특정 데이터 과학 문제에 대한 코드의 효율성과 가독성을 높일 수도 있습니다. 다음은 실용적인 numpy 최적화 기술의 몇 가지 예입니다. 🎜🎜(1) numpy의 벡터화된 계산을 사용하면🎜🎜numpy를 사용하면 벡터화된 계산이 매우 쉬워집니다. 많은 양의 데이터로 작업할 때 벡터화된 계산은 요소를 하나씩 반복하는 것보다 빠릅니다. 다음은 두 배열의 요소별 합산을 구현하는 예입니다. 🎜
[ 1 12 23 30]
🎜 위의 예에서 볼 수 있듯이 벡터화된 계산을 사용하면 코드가 크게 단순화되고 효율성이 향상됩니다. 🎜🎜(2) numpy의 브로드캐스트 기능 사용🎜🎜numpy의 브로드캐스트 기능은 다양한 모양의 배열 간의 수학적 계산을 허용하는 매우 강력한 도구입니다. 브로드캐스트 규칙을 사용하면 일부 계산을 매우 간단하게 만들 수 있습니다. 다음은 서로 다른 모양의 두 배열을 추가하는 예입니다. 🎜rrreee🎜이 코드 조각은 숫자 1, 2, 3을 열 벡터로 처리하여 각 a 배열에 추가합니다. 한 번에 행. 브로드캐스트 메커니즘을 사용하면 numpy가 브로드캐스트 작업을 수행할 축을 자동으로 추론할 수 있으므로 계산이 매우 간단해집니다. 🎜🎜(3) numpy의 슬라이싱 및 인덱싱 기능 사용🎜

numpy提供了切片和索引的功能,使得对数组中特定元素的访问变得非常方便。例如,如果想要选择数组中的一个子集,可以使用切片:

import numpy as np

# 生成一个数组
a = np.array([[ 0,  1,  2,  3],
              [10, 11, 12, 13],
              [20, 21, 22, 23],
              [30, 31, 32, 33],
              [40, 41, 42, 43]])

# 切片选择子数组
b = a[:, 1:3]

# 输出子数组
print(b)

该代码片段选择了数组a中第2列和第3列的所有行作为子数组,结果如下:

[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]]

除了切片,numpy还提供了强大的索引功能,可以使用它来选择特定的元素或子数组:

import numpy as np

# 生成一个数组
a = np.array([[ 0,  1,  2,  3],
              [10, 11, 12, 13],
              [20, 21, 22, 23],
              [30, 31, 32, 33],
              [40, 41, 42, 43]])

# 使用索引选择特定元素
b = a[[0, 1, 2, 3], [1, 2, 3, 0]]

# 输出选中的元素
print(b)

该代码片段选择了数组a中的4个元素,分别是(0,1)、(1,2)、(2,3)和(3,0),结果如下:

[ 1 12 23 30]

4.结语

选择合适的numpy版本和使用优化技巧是提高数据科学工作效率的有效方法。通过与具体的场景结合,使用numpy的向量化计算、广播、切片和索引等优化技巧,能够简化代码、提高效率、降低资源消耗。读者可以基于本文提供的实际代码示例,进一步探索numpy的强大功能。

위 내용은 데이터 과학 워크플로를 최적화하기 위해 올바른 numpy 버전을 선택하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.