欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NumPy 數(shù)組使用大全

 更新時(shí)間:2019年04月25日 09:02:02   作者:瘋狂的技術(shù)宅  
這篇文章主要介紹了NumPy 數(shù)組使用大全,在本教程中,你將學(xué)習(xí)如何在 NumPy 數(shù)組上以多種方式添加、刪除、排序和操作元素。 文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

NumPy 是一個(gè)Python 庫,用于 Python 編程中的科學(xué)計(jì)算。在本教程中,你將學(xué)習(xí)如何在 NumPy 數(shù)組上以多種方式添加、刪除、排序和操作元素。

NumPy 提供了一個(gè)多維數(shù)組對象和其他派生數(shù)組,例如掩碼數(shù)組和掩碼多維數(shù)組。

為什么要用 NumPy

NumPy 提供了一個(gè) ndarray 對象,可以使用它來對任何維度的數(shù)組進(jìn)行操作。 ndarray 代表 N 維數(shù)組,其中 N 是任意數(shù)字。這意味著 NumPy 數(shù)組可以是任何維度的。

與 Python 的 List 相比,NumPy 具有許多優(yōu)勢。我們可以在 NumPy 陣列上執(zhí)行高性能操作,例如:

  1. 對數(shù)組成員進(jìn)行排序
  2. 數(shù)學(xué)和邏輯運(yùn)算
  3. 輸入/輸出功能
  4. 統(tǒng)計(jì)和線性代數(shù)運(yùn)算

安裝 NumPy

要安裝NumPy,你的電腦上要先有 Python 和 Pip。

在終端中運(yùn)行以下命令:

pip install numpy

然后你就可以在腳本中導(dǎo)入 NumPy 了,如下所示:

import numpy

添加數(shù)組元素

可以用 NumPy 模塊的 append() 方法向 NumPy 數(shù)組中添加元素。

append() 的語法如下:

numpy.append(array, value, axis)

value 會被追加到在數(shù)組的末尾,并返回一個(gè)包含所有元素的 ndarray。

參數(shù) axis 是一個(gè)可選的整數(shù),用于定義數(shù)組的顯示方式。如果沒有指定,則數(shù)組結(jié)構(gòu)將展平,稍后會演示用法。

以下示例,其中首先聲明數(shù)組,然后用 append 方法向數(shù)組添加更多的值:

import numpy
a = numpy.array([1, 2, 3])
newArray = numpy.append (a, [10, 11, 12])
print(newArray)
# 輸出:[ 1 2 3 10 11 12]

添加一列

也可以用NumPy 的 append() 方法插入一列。

在下面的例子中,我們創(chuàng)建了一個(gè)二維數(shù)組并插入了兩列:

import numpy

a = numpy.array([[1, 2, 3], [4, 5, 6]]) 
b = numpy.array([[400], [800]])
newArray = numpy.append(a, b, axis = 1)
print(newArray)

"""
輸出:
[[ 1  2  3 400]
 [ 4  5  6 800]]
"""

如果沒有使用 axis 參數(shù),則會輸出:

[ 1 2 3 4 5 6 400 800]

這就是數(shù)組結(jié)構(gòu)的扁平化。

在 NumPy 中,還可以用 insert() 方法插入元素或列。 兩者之間的區(qū)別在于 insert() 方法可以指定要在哪個(gè)索引處添加元素,但 append() 方法會在數(shù)組的末尾添加一個(gè)值。

Consider the example below:

考慮以下示例:

import numpy
a = numpy.array([1, 2, 3])
newArray = numpy.insert(a, 1, 90) 
print(newArray)
# 輸出:[ 1 90 2 3]

這里 insert() 方法在索引1處添加元素。在Python中數(shù)組索引從0開始。

追加一行

也可以用 append() 方法向數(shù)組添加行,就像在數(shù)組中附加元素一樣簡單:

import numpy
a = numpy.array([[1, 2, 3], [4, 5, 6]])
newArray = numpy.append(a, [[50, 60, 70]], axis = 0)
print(newArray)
"""
輸出“
[[ 1 2 3]
 [ 4 5 6]
 [50 60 70]]
"""

刪除元素

可以用 NumPy 模塊的 delete() 方法刪除 NumPy 數(shù)組元素:

import numpy 
a = numpy.array([1, 2, 3]) 
newArray = numpy.delete(a, 1, axis = 0) 
print(newArray)
# 輸出:[1 3]

在本例子中,我們有一個(gè)一維數(shù)組,用 delete() 方法從數(shù)組中刪除了索引 1 處的元素。

刪除一行

同樣,你也可以用 delete() 方法刪除行。

下面的例子中我們從二維數(shù)組中刪除了一行:

import numpy 
a = numpy.array([[1, 2, 3], [4, 5, 6], [10, 20, 30]]) 
newArray = numpy.delete(a, 1, axis = 0)
print(newArray)
"""
輸出:
[[ 1 2 3]
 [10 20 30]]
"""

在 delete() 方法中,首先給出數(shù)組,然后給出要?jiǎng)h除的元素的索引。在上例中,我們刪除了索引為 1 的元素。

檢查 NumPy 數(shù)組是否為空

可以用 size 方法返回?cái)?shù)組中元素的總數(shù)。

在下面的例子中有一個(gè) if 語句,通過 ndarray.size 檢查數(shù)組中是否有元素,其中 ndarray 可以是任何給定的 NumPy 數(shù)組:

import numpy

a = numpy.array([1, 2, 3]) 
if(a.size == 0): 
  print("The given Array is empty") 
else: 
  print("The array = ", a)
# 輸出:The array = [1 2 3]

在上面的代碼中,數(shù)組中有三個(gè)元素,因此它不是空的,判斷條件將返回false。如果數(shù)組中沒有元素,則 if 條件會變?yōu)?true 并且將打印空消息。如果數(shù)組等于:

a = numpy.array([])

上述代碼將會輸出:

The given Array is empty

查找值的索引

要查找值對應(yīng)的索引,可以用 NumPy 模塊的 where() 方法,如下例所示:

import numpy
a = numpy.array([1, 2, 3, 4, 5])
print("5 is found at index: ", numpy.where(a == 5))
# 輸出:5 is found at index: (array([4]),)

如果你只想得到索引,可以這樣寫:

import numpy

a = numpy.array([1, 2, 3, 4, 5]) 
index = numpy.where(a == 5)
print("5 is found at index: ", index[0])
#輸出: 5 is found at index: [4]

NumPy 數(shù)組切片

數(shù)組切片是從給定數(shù)組中提取子集的過程。你可以用冒號( : )運(yùn)算符對數(shù)組進(jìn)行切片,并指定數(shù)組索引的開始和結(jié)束位置,例如:

array[from:to]

下面的例子中提取從索引 2 到索引 5 的元素:

import numpy
a = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print("A subset of array a = ", a[2:5])
# 輸出:A subset of array a = [3 4 5]

如果想要提取最后三個(gè)元素,可以通過用負(fù)切片來完成操作,如下所示:

import numpy
a = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print("A subset of array a = ", a[-3:])
# 輸出:A subset of array a = [6 7 8]

將函數(shù)作用于所有數(shù)組元素

在下面的例子中,我們將創(chuàng)建一個(gè) lambda 函數(shù),并傳入一個(gè)數(shù)組,以其應(yīng)用于所有元素:

import numpy
addition = lambda x: x + 2
a = numpy.array([1, 2, 3, 4, 5, 6])
print("Array after addition function: ", addition(a))
# 輸出:Array after addition function: [3 4 5 6 7 8] 

在此例中,創(chuàng)建了一個(gè) lambda 函數(shù),它使每個(gè)元素都遞增 2。

NumPy 數(shù)組的長度

要得到 NumPy 數(shù)組的長度,可以用 size 屬性,如下所示:

import numpy 
a = numpy.array([1, 2, 3, 4, 5, 6]) 
print("The size of array = ", a.size)
# 輸出:The size of array = 6

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

假設(shè)你有一個(gè)列表:

l = [1, 2, 3, 4, 5]

現(xiàn)在要根據(jù)這個(gè)列表創(chuàng)建一個(gè)數(shù)組,可以用 NumPy 模塊的 array() 方法:

import numpy 
l = [1, 2, 3, 4, 5] 
a = numpy.array(l) 
print("The NumPy array from Python list = ", a)
# 輸出:The NumPy array from Python list = [1 2 3 4 5]

同樣,使用 array() 方法,也可以從元組創(chuàng)建 NumPy 數(shù)組。如下所示:

import numpy
t = (1, 2, 3, 4, 5) 
a = numpy.array(t) 
print("The NumPy array from Python Tuple = ", a)
# 輸出:The NumPy array from Python Tuple = [1 2 3 4 5]

將 NumPy 數(shù)組轉(zhuǎn)換為 list

要將數(shù)組轉(zhuǎn)換為list,可以使用 NumPy 模塊的 tolist()方法。

import numpy 
a = numpy.array([1, 2, 3, 4, 5]) 
print("Array to list = ", a.tolist())
# 輸出:Array to list = [1, 2, 3, 4, 5]

在這段代碼中,我們簡單地調(diào)用了 tolist() 方法,該方法將數(shù)組轉(zhuǎn)換為列表。然后將新創(chuàng)建的列表打印到輸出屏幕。

把 NumPy 數(shù)組導(dǎo)出為 CSV

要將數(shù)組導(dǎo)出為 CSV 文件,可以用 NumPy 模塊的 savetxt() 方法,如下所示:

import numpy 
a = numpy.array([1, 2, 3, 4, 5]) 
numpy.savetxt("myArray.csv", a)

此代碼將在 Python 代碼文件所在路徑下生成 CSV 文件。當(dāng)然你也可以指定路徑。

該文件的內(nèi)容如下:

1.000000000000000000e+00
2.000000000000000000e+00
3.000000000000000000e+00
4.000000000000000000e+00
5.000000000000000000e+00

你可以把額外填充的零刪除,如下所示:

numpy.savetxt("myArray.csv", a,fmt='%.2f')

對 NumPy 數(shù)組排序

可以用 NumPy 模塊的 sort() 方法對 NumPy 數(shù)組進(jìn)行排序:

sort() 函數(shù)有一個(gè)可選參數(shù) axis(整數(shù)),默認(rèn)為 -1。axis 指定我們要對數(shù)組進(jìn)行排序的軸。 -1 表示將根據(jù)最后一個(gè)軸對數(shù)組進(jìn)行排序。

import numpy 
a = numpy.array([16, 3, 2, 6, 8, 10, 1]) 
print("Sorted array = ", numpy.sort(a))
# 輸出:Sorted array = [ 1 2 3 6 8 10 16]

在這個(gè)例子中,我們在 print 語句中調(diào)用了 sort() 方法。數(shù)組 a 被傳遞給 sort 函數(shù)。

歸一化數(shù)組

歸一化數(shù)組是指將數(shù)組的值置于某個(gè)定義范圍的過程。例如,我們想要在 -1 和 1 之間對數(shù)組進(jìn)行歸一化,依此類推。

歸一化的公式如下:

x = (x – xmin) / (xmax – xmin)

現(xiàn)在把這個(gè)公式用于我們的數(shù)組。要查找數(shù)組中的最大和最小項(xiàng),可以分別用 NumPy 的 max() 和 min() 方法。

import numpy 
x= numpy.array([400, 800, 200, 700, 1000, 2000, 300]) 
xmax = x.max() 
xmin = x.min() 
x = (x - xmin)/(xmax - xmin) 
print("After normalization array x = \n", x)
"""
輸出:
After normalization array x =
 [0.11111111 0.33333333 0.     0.27777778 0.44444444 1.
 0.05555556]
"""

數(shù)組索引

索引指向數(shù)組中的一個(gè)元素。在下面的例子中,分別用到了一維和二維數(shù)組中的索引:

import numpy 
a = numpy.array([20, 13, 42, 86, 81, 9, 11]) 
print("Element at index 3 = ", a[3])
# 輸出:Element at index 3 = 86

下面是二維數(shù)組:

import numpy 
a = numpy.array([[20, 13, 42], [86, 81, 9]]) 
print("Element at index a[1][2] = ", a[1][2])
# 輸出:Element at index a[1][2] = 9

索引 [1][2] 表示第二行和第三列(索引從 0 開始)。因此在屏幕上輸出 9 。

將 NumPy 數(shù)組附加到另​一個(gè)數(shù)組上

可以用 append() 方法將 NumPy 數(shù)組附加到另​​一個(gè) NumPy 數(shù)組上。

import numpy 
a = numpy.array([1, 2, 3, 4, 5]) 
b = numpy.array([10, 20, 30, 40, 50]) 
newArray = numpy.append(a, b) 
print("The new array = ", newArray)
# 輸出:The new array = [ 1 2 3 4 5 10 20 30 40 50]

在此例中,創(chuàng)建兩個(gè) NumPy 數(shù)組 a, b 。然后把兩個(gè)數(shù)組傳給 append()。當(dāng)數(shù)組 b 作為第二個(gè)參數(shù)傳遞時(shí),將被添加到數(shù)組 a 的末尾。

總結(jié)

正如大家所見,NumPy 數(shù)組用起來非常簡單。在使用很多機(jī)器學(xué)習(xí)庫時(shí),NumPy 數(shù)組非常重要??梢哉fNumPy 是人工智能的大門。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中csv模塊的基本使用教程

    Python中csv模塊的基本使用教程

    csv文件使用逗號分割,是一種純文本格式,不能指定字體顏色等樣式,也不能指定單元格的寬高,不能合并單元格,沒有多個(gè)工作表等功能,可以使用Excel打,這篇文章主要給大家介紹了關(guān)于Python中csv模塊的基本使用教程,需要的朋友可以參考下
    2021-07-07
  • Python利用PyPDF2庫合并多個(gè)pdf文件

    Python利用PyPDF2庫合并多個(gè)pdf文件

    PyPDF2庫是一個(gè)用于處理PDF文件的Python庫,它提供了一系列的工具來讀取、編輯、合并、拆分和加密PDF文件,使得我們可以在Python環(huán)境下輕松地對PDF文件進(jìn)行操作,本文將帶大家介紹如何通過Python的PyPDF2庫合并多個(gè)pdf文件,需要的朋友可以參考下
    2023-05-05
  • python列表排序用?sort()和sorted()的區(qū)別

    python列表排序用?sort()和sorted()的區(qū)別

    這篇文章主要介紹了python列表排序用?sort()和sorted()的區(qū)別,主要比較?Python?中用于列表排序的兩種函數(shù)?sort()?和?sorted(),選擇合適的排序函數(shù),下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • python簡單的函數(shù)定義和用法實(shí)例

    python簡單的函數(shù)定義和用法實(shí)例

    這篇文章主要介紹了python簡單的函數(shù)定義和用法,實(shí)例分析了Python自定義函數(shù)及其使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析

    Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析

    這篇文章主要介紹了Python自定義函數(shù)定義,參數(shù),調(diào)用代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python中關(guān)于面向?qū)ο笏接袑傩苑椒ǖ脑敿?xì)講解

    Python中關(guān)于面向?qū)ο笏接袑傩苑椒ǖ脑敿?xì)講解

    在實(shí)際開發(fā)中,對象的某些屬性或方法可能只希望在對象的內(nèi)部被使用,而不希望在外部被訪問到,私有屬性就是對象不希望公開的屬性,私有方法就是對象不希望公開的方法
    2021-10-10
  • Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式

    Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式

    今天小編就為大家分享一篇Pytorch在dataloader類中設(shè)置shuffle的隨機(jī)數(shù)種子方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python 獲取谷歌瀏覽器保存的密碼

    python 獲取谷歌瀏覽器保存的密碼

    這篇文章主要介紹了python 獲取谷歌瀏覽器保存的密碼的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python 十大特性

    Python 十大特性

    這篇文章主要給大家分享的是Python十大特性,Python 編程語言是世界上發(fā)展最快的編程語言。這一高級通用編程語言提供了廣泛的實(shí)際應(yīng)用,并且是一種非常流行的認(rèn)證,下面我們就來看看它都有哪些特性吧
    2022-01-01
  • Pycharm+Python+PyQt5使用詳解

    Pycharm+Python+PyQt5使用詳解

    這篇文章主要介紹了Pycharm+Python+PyQt5使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論