深入探索NumPy手冊

一、NumPy庫簡介

NumPy(Numerical Python)是一個用於科學計算的Python庫。它提供了一個用於處理大型多維數組和矩陣的高效工具。NumPy庫在數據科學領域是一個重要的庫。

下面是一個簡單的例子,演示了如何使用NumPy庫創建一個一維數組,並對其進行操作:

import numpy as np

arr = np.array([1, 2, 3, 4])
print(arr) # 輸出 [1 2 3 4]

# 數組的形狀
print(arr.shape) # 輸出 (4,)

# 數組的元素個數
print(arr.size) # 輸出 4

# 數組元素的數據類型
print(arr.dtype) # 輸出 int64

二、創建數組

使用NumPy庫可以很方便地創建數組。可以使用numpy.array函數創建數組,也可以從列表或元組中創建數組:

import numpy as np

# 從列表中創建數組
arr1 = np.array([1, 2, 3, 4])
print(arr1) # 輸出 [1 2 3 4]

# 從元組中創建數組
arr2 = np.array((1, 2, 3, 4))
print(arr2) # 輸出 [1 2 3 4]

使用NumPy庫也可以創建特定的數組,例如,可以使用numpy.zeros函數創建全零數組,numpy.ones函數創建全一數組,numpy.random.rand函數創建隨機數組:

import numpy as np

# 創建全零數組
zeros_arr = np.zeros(3)
print(zeros_arr) # 輸出 [0. 0. 0.]

# 創建全一數組
ones_arr = np.ones(3)
print(ones_arr) # 輸出 [1. 1. 1.]

# 創建隨機數組
rand_arr = np.random.rand(3)
print(rand_arr) # 輸出 [0.85007557 0.74959504 0.178823]

# 創建指定形狀的數組
arr = np.empty((2, 3))
print(arr) # 輸出 [[1.24441872e-311, 9.58487353e-322, 0.00000000e+000],
           #     [0.00000000e+000, 6.95348796e-309, 7.49303579e-067]]

三、數組索引和切片

與Python中列表和元組的索引和切片類似,使用NumPy庫也可以對數組進行相應的操作。可以使用整數索引、切片和布爾索引來選擇數組的子集。

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 整數索引
print(arr[0]) # 輸出 1
print(arr[2]) # 輸出 3

# 切片
print(arr[3:6]) # 輸出 [4 5 6]
print(arr[:5]) # 輸出 [1 2 3 4 5]
print(arr[5:]) # 輸出 [ 6  7  8  9 10]

# 布爾索引
arr_bool = arr > 5
print(arr_bool) # 輸出 [False False False False False  True  True  True  True  True]
print(arr[arr_bool]) # 輸出 [ 6  7  8  9 10]

四、數組操作

NumPy庫提供了許多有用的函數來操作數組,例如可以使用numpy.reshape函數改變數組的形狀,numpy.concatenate函數將多個數組合併成一個數組,numpy.copy函數複製數組:

import numpy as np

# 改變數組形狀
arr1 = np.array([1, 2, 3, 4, 5, 6])
reshape_arr = arr1.reshape((2, 3))
print(reshape_arr) # 輸出 [[1 2 3]
                   #     [4 5 6]]

# 合併數組
arr2 = np.array([7, 8, 9])
concatenate_arr = np.concatenate((arr1, arr2))
print(concatenate_arr) # 輸出 [1 2 3 4 5 6 7 8 9]

# 複製數組
copy_arr = arr1.copy()
copy_arr[0] = 0
print(copy_arr) # 輸出 [0 2 3 4 5 6]
print(arr1) # 輸出 [1 2 3 4 5 6]

五、數學函數

NumPy庫提供了許多常用的數學函數,如三角函數、指數函數、對數函數等,以及統計函數,如平均值、方差、標準差等。

import numpy as np

x = np.array([0, np.pi/2, np.pi])

# 三角函數
print(np.sin(x)) # 輸出 [0.         1.         0.        ]
print(np.cos(x)) # 輸出 [ 1.000000e+00  6.123234e-17 -1.000000e+00]

# 指數函數和對數函數
x = np.array([1, 2, 3])
print(np.exp(x)) # 輸出 [ 2.71828183  7.3890561  20.08553692]
print(np.log(x)) # 輸出 [0.       0.693147 1.098612]

# 統計函數
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 輸出 3.0
print(np.var(arr)) # 輸出 2.0
print(np.std(arr)) # 輸出 1.41421356  

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/206218.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-07 17:50
下一篇 2024-12-07 17:50

相關推薦

  • Python矩陣轉置函數Numpy

    本文將介紹如何使用Python中的Numpy庫實現矩陣轉置。 一、Numpy庫簡介 在介紹矩陣轉置之前,我們需要了解一下Numpy庫。Numpy是Python語言的計算科學領域的基…

    編程 2025-04-28
  • Python列錶轉numpy數組

    本文將闡述Python中列表如何轉換成numpy數組。在科學計算和數據分析領域中,numpy數組扮演着重要的角色。Python與numpy的無縫結合使得數據操作更加方便和高效。因此…

    編程 2025-04-27
  • 阿里Python技術手冊

    本文將從多個方面對阿里Python技術手冊進行詳細闡述,包括規範、大數據、Web應用、安全和調試等方面。 一、規範 Python的編寫規範對於代碼的可讀性和可維護性有很大的影響。阿…

    編程 2025-04-27
  • 其他字符Python——Python全能編程開發工程師手冊

    為了滿足不同領域對Python的需求,其他字符Python應運而生。它是一種全能的Python編程語言,提供了許多強大的功能和庫,使得編程變得更加簡單、高效。在本文中,我們將從不同…

    編程 2025-04-27
  • 如何查Python手冊?

    想要進行Python編程,不可避免的要查看官方API文檔和手冊。Python文檔除了包含所有Python模塊和其對應的方法和屬性外,還提供了包括解釋器、語言參考、Python標準庫…

    編程 2025-04-27
  • Python三大:NumPy、Pandas、matplotlib

    本文將詳細介紹三大Python數據處理及可視化庫——NumPy、Pandas以及matplotlib,為讀者提供從基礎使用到應用場景的全面掌握。 一、NumPy NumPy是Pyt…

    編程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在開發過程中引入了新的API `defineExpose`。在以前的版本中,我們經常使用 `$attrs` 和` $listeners` 實現父組件與子組件之間的通信,但…

    編程 2025-04-25
  • 深入理解byte轉int

    一、位元組與比特 在討論byte轉int之前,我們需要了解位元組和比特的概念。位元組是計算機存儲單位的一種,通常表示8個比特(bit),即1位元組=8比特。比特是計算機中最小的數據單位,是…

    編程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什麼是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一個內置小部件,它可以監測數據流(Stream)中數據的變…

    編程 2025-04-25
  • 深入探討OpenCV版本

    OpenCV是一個用於計算機視覺應用程序的開源庫。它是由英特爾公司創建的,現已由Willow Garage管理。OpenCV旨在提供一個易於使用的計算機視覺和機器學習基礎架構,以實…

    編程 2025-04-25

發表回復

登錄後才能評論