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.choice
및 np.random.permutation
기능 도입np.random.choice
和np.random.permutation
函数
np.histogramdd
函数np.isclose
函数np.matmul
函数np.loadtxt
和np.genfromtxt
函数np.piecewise
函数np.stack
函数np.moveaxis
函数np.copyto
函数np.count_nonzero
和np.bincount
函数np.compress
函数np.isin
函数np.promote_types
函数np.histogram_bin_edges
函数np.searchsorted
函数np.unique
函数的性能np.linalg.lstsq
函数的rcond
参数np.cell
函数np.format_float_positional
函数从上表可以看出,numpy的每个版本都有不同的变化和优化。在选择numpy版本时,需要结合具体需求和使用场景,选择相应版本。如果需要使用某个新特性或者解决某个特定问题,可以选择较新的版本。如果考虑稳定性和向下兼容性,可以选择较旧的版本。
2.如何更换numpy版本
在Python中,可以使用pip命令安装和更换numpy版本。以下是更换numpy版本的步骤:
!pip list | grep numpy
输出:
numpy 1.19.5
该结果显示当前安装的numpy版本为1.19.5。
# 卸载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.13 - 향상된 UMFPACK 버전에 대한 지원 도입
np.isclose
기능 추가np.matmul함수
np.loadtxt
및 np.genfromtxt
함수np .piecewise
기능 추가np.stack
도입 > 함수np.moveaxis
함수 도입np.copyto
함수np.count_nonzero
및 np.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
함수 도입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임을 보여줍니다. 🎜
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!