自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

知道Numpy嗎?它為什么是Python科學(xué)計(jì)算中不可或缺的一環(huán)

開(kāi)發(fā) 后端
本文介紹了NumPy數(shù)組的創(chuàng)建、索引、切片、數(shù)學(xué)運(yùn)算、線性代數(shù)等方面的內(nèi)容。NumPy是Python科學(xué)計(jì)算的重要組件之一,具有強(qiáng)大的計(jì)算能力和高效的性能,是數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域必不可少的工具之一。

NumPy是Python的一個(gè)科學(xué)計(jì)算庫(kù),它提供了高效的多維數(shù)組操作和數(shù)學(xué)函數(shù)。NumPy是許多其他Python科學(xué)庫(kù)的基礎(chǔ),因?yàn)樗峁┝丝焖俚臄?shù)值計(jì)算和數(shù)據(jù)處理能力。在本文中,我們將深入介紹NumPy的使用,包括數(shù)組創(chuàng)建、索引、切片、數(shù)學(xué)運(yùn)算、線性代數(shù)等方面的內(nèi)容。

數(shù)組創(chuàng)建

NumPy中最基本的對(duì)象是數(shù)組(array),它是一種多維數(shù)組。在NumPy中,數(shù)組可以通過(guò)多種方式創(chuàng)建。以下是一些常用的數(shù)組創(chuàng)建方式:

從Python列表創(chuàng)建數(shù)組

NumPy可以從Python列表(list)創(chuàng)建數(shù)組。以下是一個(gè)示例:

import numpy as np

my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)

print(my_array)

輸出:

[1 2 3 4 5]

從元組創(chuàng)建數(shù)組

NumPy也可以從元組(tuple)創(chuàng)建數(shù)組。以下是一個(gè)示例:

import numpy as np

my_tuple = (1, 2, 3, 4, 5)
my_array = np.array(my_tuple)

print(my_array)

輸出:

[1 2 3 4 5]

使用zeros函數(shù)創(chuàng)建數(shù)組

使用zeros函數(shù)可以創(chuàng)建一個(gè)全是0的數(shù)組。以下是一個(gè)示例:

import numpy as np

my_array = np.zeros((3, 4))

print(my_array)

輸出:

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

使用ones函數(shù)創(chuàng)建數(shù)組

使用ones函數(shù)可以創(chuàng)建一個(gè)全是1的數(shù)組。以下是一個(gè)示例:

import numpy as np

my_array = np.ones((3, 4))

print(my_array)

輸出:

[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

使用arange函數(shù)創(chuàng)建數(shù)組

使用arange函數(shù)可以創(chuàng)建一個(gè)等差數(shù)列數(shù)組。以下是一個(gè)示例:

import numpy as np

my_array = np.arange(0, 10, 2)

print(my_array)

輸出:

[0 2 4 6 8]

使用linspace函數(shù)創(chuàng)建數(shù)組

使用linspace函數(shù)可以創(chuàng)建一個(gè)等間隔數(shù)列數(shù)組。以下是一個(gè)示例:

import numpy as np

my_array = np.linspace(0, 1, 5)

print(my_array)

輸出:

[0.   0.25 0.5  0.75 1.  ]

數(shù)組索引和切片

NumPy數(shù)組可以像Python列表一樣進(jìn)行索引和切片。以下是一些常用的數(shù)組索引和切片方式:

使用整數(shù)索引

可以使用整數(shù)索引獲取數(shù)組中的元素。以下是一個(gè)示例:

import numpy as np

my_array = np.array([1, 2, 3, 4, 5])

print(my_array[2])

輸出:

3

使用切片

可以使用切片獲取數(shù)組中的元素。以下是一個(gè)示例:

import numpy as np

my_array = np.array([1, 2, 3, 4, 5])

print(my_array[1:4])

輸出:

[2 3 4]

使用布爾索引

可以使用布爾索引獲取數(shù)組中符合條件的元素。以下是一個(gè)示例:

import numpy as np

my_array = np.array([1, 2, 3, 4, 5])

mask = my_array > 3
print(my_array[mask])

輸出:

[4 5]

數(shù)學(xué)運(yùn)算

NumPy提供了大量的數(shù)學(xué)函數(shù),包括基本的算術(shù)運(yùn)算、三角函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等。以下是一些常用的數(shù)學(xué)函數(shù):

基本算術(shù)運(yùn)算

NumPy提供了基本的算術(shù)運(yùn)算,包括加、減、乘、除、求余等。以下是一個(gè)示例:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)

輸出:

[11 22 33 44 55]
[-9 -18 -27 -36 -45]
[ 10  40  90 160 250]
[0.1 0.1 0.1 0.1 0.1]
[1 2 3 4 5]

三角函數(shù)

NumPy提供了多種三角函數(shù),包括sin、cos、tan、arcsin、arccos、arctan等。以下是一個(gè)示例:

import numpy as np

a = np.array([0, np.pi/2, np.pi])
print(np.sin(a))
print(np.cos(a))
print(np.tan(a))

輸出:

[0.0000000e+00 1.0000000e+00 1.2246468e-16]
[ 1.000000e+00  6.123234e-17 -1.000000e+00]
[ 0.00000000e+00  1.63312394e+16 -1.22464680e-16]

指數(shù)函數(shù)和對(duì)數(shù)函數(shù)

NumPy提供了多種指數(shù)函數(shù)和對(duì)數(shù)函數(shù),包括exp、exp2、log、log2等。以下是一個(gè)示例:

import numpy as np

a = np.array([1, 2, 3])
print(np.exp(a))
print(np.exp2(a))
print(np.log(a))
print(np.log2(a))

輸出:

[ 2.71828183  7.3890561  20.08553692]
[2. 4. 8.]
[0.         0.69314718 1.09861229]
[0.        1.        1.5849625]

線性代數(shù)

NumPy也提供了豐富的線性代數(shù)函數(shù)。以下是一些常用的線性代數(shù)函數(shù):

矩陣乘法

NumPy提供了矩陣乘法運(yùn)算。以下是一個(gè)示例:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

print(np.matmul(a, b))

輸出:

[[19 22]
 [43 50]]

矩陣求逆

NumPy提供了矩陣求逆運(yùn)算。以下是一個(gè)示例:

import numpy as np

a = np.array([[1, 2], [3, 4]])

print(np.linalg.inv(a))

輸出:

[[-2.   1. ]
 [ 1.5 -0.5]]

特征值和特征向量

NumPy提供了特征值和特征向量的計(jì)算函數(shù)。以下是一個(gè)示例:

import numpy as np

a = np.array([[1, 2], [3, 4]])

w, v = np.linalg.eig(a)
print(w)
print(v)

輸出:

[-0.37228132  5.37228132]
[[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

示例代碼

下面是一個(gè)完整的使用NumPy的示例代碼,包括數(shù)組創(chuàng)建、索引、切片、數(shù)學(xué)運(yùn)算、線性代數(shù)等方面的內(nèi)容:

import numpy as np

# 從Python列表創(chuàng)建數(shù)組
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)

# 從元組創(chuàng)建數(shù)組
my_tuple = (1, 2, 3, 4, 5)
my_array = np.array(my_tuple)
print(my_array)

# 使用zeros函數(shù)創(chuàng)建數(shù)組
my_array = np.zeros((3, 4))
print(my_array)

# 使用ones函數(shù)創(chuàng)建數(shù)組
my_array = np.ones((3, 4))
print(my_array)

# 使用arange函數(shù)創(chuàng)建數(shù)組
my_array = np.arange(0, 10, 2)
print(my_array)

# 使用linspace函數(shù)創(chuàng)建數(shù)組
my_array = np.linspace(0, 1, 5)
print(my_array)

# 使用整數(shù)索引
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[2])

# 使用切片
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[1:4])

# 使用布爾索引
my_array = np.array([1, 2, 3, 4, 5])
mask = my_array > 3
print(my_array[mask])

# 基本算術(shù)運(yùn)算
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b)

# 三角函數(shù)
a = np.array([0, np.pi/2, np.pi])
print(np.sin(a))
print(np.cos(a))
print(np.tan(a))

# 指數(shù)函數(shù)和對(duì)數(shù)函數(shù)
a = np.array([1, 2, 3])
print(np.exp(a))
print(np.exp2(a))
print(np.log(a))
print(np.log2(a))

# 矩陣乘法
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print(np.matmul(a, b))

# 矩陣求逆
a = np.array([[1, 2], [3, 4]])
print(np.linalg.inv(a))

# 特征值和特征向量
a = np.array([[1, 2], [3, 4]])
w, v = np.linalg.eig(a)
print(w)
print(v)

輸出:

[1 2 3 4 5]
[1 2 3 4 5]
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
[0 2 4 6 8]
[0.   0.25 0.5  0.75 1.  ]
3
[2 3 4]
[4 5]
[11 22 33 44 55]
[-9 -18 -27 -36 -45]
[ 10  40  90 160 250]
[0.1 0.1 0.1 0.1 0.1]
[1 2 3 4 5]
[0.0000000e+00 1.0000000e+00 1.2246468e-16]
[ 1.000000e+00  6.123234e-17 -1.000000e+00]
[ 0.00000000e+00  1.63312394e+16 -1.22464680e-16]
[ 2.71828183  7.3890561  20.08553692]
[2. 4. 8.]
[0.         0.69314718 1.09861229]
[0.        1.        1.5849625]
[[19 22]
 [43 50]]
[[-2.   1. ]
 [ 1.5 -0.5]]
[-0.37228132  5.37228132]
[[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

結(jié)論

本文介紹了NumPy數(shù)組的創(chuàng)建、索引、切片、數(shù)學(xué)運(yùn)算、線性代數(shù)等方面的內(nèi)容。NumPy是Python科學(xué)計(jì)算的重要組件之一,具有強(qiáng)大的計(jì)算能力和高效的性能,是數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域必不可少的工具之一。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2024-10-11 10:00:00

Python庫(kù)編程

2019-08-05 10:00:13

LinuxBash命令

2024-11-12 12:19:39

2021-11-30 05:51:46

React開(kāi)發(fā)工具

2024-10-17 16:01:02

2024-01-12 07:32:35

數(shù)據(jù)科學(xué)Python庫(kù)項(xiàng)目

2020-09-15 15:53:31

邊緣計(jì)算云計(jì)算5G

2021-10-15 10:34:31

云計(jì)算制造業(yè)云應(yīng)用

2017-03-27 17:53:45

Linux

2023-11-06 14:39:47

邊緣計(jì)算能源

2020-05-07 18:20:52

Git腳本Linux開(kāi)源

2013-09-18 09:40:32

企業(yè)BYOD企業(yè)應(yīng)用商店

2020-12-09 13:20:22

數(shù)據(jù)科學(xué)技能數(shù)據(jù)科學(xué)家

2012-08-22 09:35:39

云計(jì)算固態(tài)硬盤(pán)SAS傳統(tǒng)硬盤(pán)

2020-10-27 12:43:53

數(shù)據(jù)分析技術(shù)工具

2024-12-03 10:55:56

微服務(wù)架構(gòu)注冊(cè)中心

2020-11-09 06:51:46

開(kāi)源工具開(kāi)源

2016-04-21 10:05:52

2011-05-10 14:49:30

SEO404頁(yè)面

2024-01-23 17:25:22

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)