Cara memilih versi numpy yang betul untuk mengoptimumkan aliran kerja sains data anda

WBOY
Lepaskan: 2024-01-19 09:23:15
asal
1411 orang telah melayarinya

Cara memilih versi numpy yang betul untuk mengoptimumkan aliran kerja sains data anda

Numpy ialah perpustakaan operasi matematik yang biasa digunakan dalam Python Ia menyediakan operasi tatasusunan yang berkuasa dan fungsi pengiraan berangka. Walau bagaimanapun, kerana versi numpy sentiasa dikemas kini, cara pengguna memilih versi yang sesuai telah menjadi isu penting. Memilih versi numpy yang betul boleh mengoptimumkan aliran kerja sains data anda dan meningkatkan kebolehselenggaraan dan kebolehbacaan kod anda. Artikel ini akan memperkenalkan cara memilih versi numpy dan menyediakan contoh kod sebenar untuk rujukan pembaca.

1 Fahami ciri-ciri pelbagai versi numpy

Pustaka numpy dikemas kini dengan cepat, dan versi terkini ialah 1.21.2. Apabila menggunakan numpy, memahami perubahan dan ciri antara versi berbeza boleh membantu kami memilih versi numpy yang sesuai dan meningkatkan kecekapan dan kebolehselenggaraan kod. Versi utama numpy termasuk 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20 dan 1.21. Perubahan utama antara versi berbeza ialah:

Ciri versi
1.11 - Memperkenalkan fungsi np.random.choice dan np.random.permutationnp.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
Salin selepas log masuk

输出:

numpy                1.19.5
Salin selepas log masuk

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

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

# 安装新的numpy版本
!pip install numpy==1.20
Salin selepas log masuk

在代码中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]
Salin selepas log masuk

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

(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)
Salin selepas log masuk

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

  • Ditambah Fungsi np.histogramdd
  • Peningkatan prestasi dan kestabilan

    1.12 - Memperkenalkan sokongan membaca dan menulis untuk fail format MATLAB
  • Mengoptimumkan Sokongan untuk Tatasusunan Berstruktur
  • Meningkatkan prestasi dengan ketara dalam beberapa kes

    1.13 - Memperkenalkan sokongan untuk versi UMFPACK yang dipertingkat

  • Menambah np.iclose< /code>Fungsi</li><li>Menambah baik sokongan untuk Polinomial </p>1.14 - Mengalih keluar beberapa fungsi dan sifat usang</li><li>Memperkenalkan <code>np.matmul< untuk menyokong pengiraan /kod>Fungsi berbilang benang</li><li>Pengoptimuman dokumentasi 🎜1.15 - Memperkenalkan peningkatan keserasian untuk Panda</li><li>Fungsi <code>np.loadtxt dan np.genfromtxt yang dipertingkatkan
  • Peningkatan operasi pembahagian dan penghirisan tatasusunan berbilang dimensi 🎜 1.16 - Memperkenalkan tatasusunan topeng jenis Boolean
  • Menambah fungsi np .piecewise
  • Prestasi dan kestabilan yang lebih baik 🎜1.17 - Memperkenalkan np.stack</code > fungsi</li><li>Menambahkan fungsi baharu untuk Ciri Tatasusunan Berstruktur</li><li>Dokumentasi dan pengoptimuman prestasi 🎜1.18 - Memperkenalkan fungsi <code>np.moveaxis
  • Ditambah Fungsi np.copyto
  • Fungsi np.count_nonzero dan np.bincount 🎜1.19 - Memperkenalkan np. fungsi compress li>
  • Menambah fungsi np.isin
  • Fungsi np.promote_types 🎜1.20 - Diperkenalkan np.histogram_bin_edgesFungsi
  • Menambahkan fungsi np.searchsorted
  • Meningkatkan prestasi np.unique</code > fungsi 🎜1.21 - diperkenalkan Menambah parameter <code>rcond bagi fungsi np.linalg.lstsq
  • Memperkenalkan np.cell</code > function</li><li >Memperkenalkan fungsi <code>np.format_float_positional
🎜Seperti yang dapat dilihat daripada jadual di atas, setiap versi numpy mempunyai perubahan dan pengoptimuman yang berbeza. Apabila memilih versi numpy, anda perlu memilih versi yang sepadan berdasarkan keperluan khusus dan senario penggunaan. Jika anda perlu menggunakan ciri baharu atau menyelesaikan masalah tertentu, anda boleh memilih versi yang lebih baharu. Jika anda mempertimbangkan kestabilan dan keserasian ke belakang, anda boleh memilih versi yang lebih lama. 🎜🎜2. Cara menukar versi numpy🎜🎜Dalam Python, anda boleh menggunakan arahan pip untuk memasang dan menukar versi numpy. Berikut ialah langkah-langkah untuk menukar versi numpy: 🎜
  • Pertama, anda boleh melihat versi numpy yang sedang dipasang melalui arahan senarai pip. Contohnya, gunakan arahan berikut untuk menyemak versi 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)
Salin selepas log masuk
Salin selepas log masuk
🎜Output: 🎜
[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]]
Salin selepas log masuk
Salin selepas log masuk
🎜Hasilnya menunjukkan bahawa versi numpy yang sedang dipasang ialah 1.19.5. 🎜
  • Untuk menukar versi numpy, anda perlu menyahpasang versi semasa dahulu, dan kemudian memasang versi baharu. Anda boleh menggunakan kod berikut untuk memasang dan menyahpasang 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)
Salin selepas log masuk
Salin selepas log masuk
🎜Dalam kod, numpy==1.20 bermaksud memasang versi 1.20. Pembaca boleh memilih nombor versi yang sesuai pasang mengikut keperluan mereka. 🎜🎜3. Gunakan teknik pengoptimuman numpy🎜🎜Selain memilih versi numpy yang sesuai, anda juga boleh menggunakan beberapa teknik pengoptimuman numpy untuk meningkatkan kecekapan dan kebolehbacaan kod untuk masalah sains data tertentu. Berikut ialah beberapa contoh teknik pengoptimuman numpy praktikal: 🎜🎜(1) Menggunakan pengiraan vektor numpy🎜🎜numpy menjadikan pengiraan vektor sangat mudah. Apabila bekerja dengan jumlah data yang besar, pengiraan bervektor lebih pantas daripada menggelung elemen satu demi satu. Berikut ialah contoh untuk melaksanakan penjumlahan elemen demi elemen bagi dua tatasusunan: 🎜
[ 1 12 23 30]
Salin selepas log masuk
Salin selepas log masuk
🎜 Seperti yang dapat dilihat daripada contoh di atas, menggunakan pengiraan vektor boleh memudahkan kod dan meningkatkan kecekapan pada masa yang sama. 🎜🎜(2) Gunakan fungsi siaran numpy🎜🎜Fungsi siaran numpy ialah alat yang sangat berkuasa yang membolehkan pengiraan matematik dilakukan antara tatasusunan bentuk yang berbeza. Peraturan penyiaran boleh membuat beberapa pengiraan sangat mudah. Berikut ialah contoh menambah dua tatasusunan bentuk yang berbeza: 🎜rrreee🎜Coretan kod ini merawat nombor 1, 2 dan 3 sebagai vektor lajur, menambahkannya pada setiap tatasusunan a: Tambahkan satu baris pada satu masa. Mekanisme penyiaran membolehkan numpy membuat kesimpulan secara automatik yang paksi untuk melaksanakan operasi penyiaran, menjadikan pengiraan sangat mudah. 🎜🎜(3) Gunakan fungsi penghirisan dan pengindeksan 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)
Salin selepas log masuk
Salin selepas log masuk

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

[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]]
Salin selepas log masuk
Salin selepas log masuk

除了切片,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)
Salin selepas log masuk
Salin selepas log masuk

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

[ 1 12 23 30]
Salin selepas log masuk
Salin selepas log masuk

4.结语

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

Atas ialah kandungan terperinci Cara memilih versi numpy yang betul untuk mengoptimumkan aliran kerja sains data anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan