深入解析import numpy as np

一、ndarray數據類型

numpy最核心的數據類型是ndarray,它是N維數組對象,代表着相同類型的元素的集合。一個ndarray數組幾乎是一個Python列表的擴展,但它的操作更加靈活和高效。對於這個類型,有幾個重要的屬性需要了解:

    import numpy as np
    nd = np.array([1, 2, 3, 4])
    print(nd.ndim)  # 維度數
    print(nd.shape)  # 各個維度的元素數量
    print(nd.size)  # 元素總數
    print(nd.dtype)  # 元素數據類型

其中,ndim、shape、size這三個屬性以及dtype數據類型屬性是我們必須知道的。

二、創建ndarray數組

ndarray數組可以從Python列表、元組、數組等進行創建。

    # 從Python列表創建ndarray數組
    nd1 = np.array([1, 2, 3])
    
    # 從Python元組創建ndarray數組
    nd2 = np.array((1, 2, 3))
    
    # 通過numpy中的方法創建ndarray數組
    nd3 = np.arange(10)  # array([0, 1, 2, ..., 9])
    nd4 = np.zeros((2, 3))  # 2行3列的全0矩陣
    nd5 = np.ones((2, 3))  # 2行3列的全1矩陣
    nd6 = np.eye(3)  # 3行3列的單位矩陣
    nd7 = np.random.random((2, 2))  # 隨機2行2列的數組

三、ndarray數組的索引和切片

ndarray中的元素可以通過它們在數組中的位置進行訪問,該位置是由數組的整數索引標誌。可以使用切片符號‘:’來獲取部分數組。下面的代碼展示了如何對ndarray數組進行索引和切片。

    # 一維數組的索引和切片
    nd1 = np.array([1, 2, 3])
    print(nd1[0])  # 1
    print(nd1[1:3])  # [2 3]
    
    # 二維數組的索引和切片
    nd2 = np.array([[1, 2, 3], [4, 5, 6]])
    print(nd2[1, 2])  # 6
    print(nd2[1, :])  # [4 5 6]
    print(nd2[:, 2])  # [3 6]

四、數組的運算與變形

numpy中可以對ndarray數組進行各種基本的數學操作、運算、變形等。下面的示例展示了一些基本的示例操作。

    nd1 = np.array([1, 2, 3])
    nd2 = np.array([2, 3, 4])
    
    # 數組加法
    print(nd1 + nd2)  # [3 5 7]
    
    # 數組乘法
    print(nd1 * nd2)  # [2 6 12]
    
    # 數組變形
    nd3 = np.array([[1, 2], [3, 4]])
    print(nd3.reshape(1, 4))  # [[1 2 3 4]]
    
    # 數組求和
    print(nd3.sum(axis=0))  # [4 6]
    print(nd3.sum(axis=1))  # [3 7]

五、線性代數

numpy提供了許多操作矩陣和向量操作的函數,可以方便的進行線性代數計算,例如計算行列式、矩陣乘法、逆矩陣等操作。

    a = np.array([[1, 2], [3, 4]])
    b = np.array([[4, 5], [6, 7]])
    c = np.dot(a, b)  # 矩陣乘法
    print(c)  # [[16, 19], [36, 43]]
    
    d = np.linalg.det(a)  # 行列式
    print(d)  # -2.0
    
    e = np.linalg.inv(a)  # 逆矩陣
    print(e)  # [[-2. ,  1. ], [ 1.5, -0.5]]

總結

本文簡單介紹了numpy庫中最重要的概念:ndarray。我們學習了ndarray的基本屬性、創建方式、索引和切片、數組運算與變形以及線性代數等方面的操作。掌握了這些知識,我們可以更加高效、方便地處理數組、矩陣等數據類型。numpy的強大之處在於其底層的優化操作,使得我們可以在處理大規模數組時,得到快速、高效的操作及計算結果。

原創文章,作者:MUKS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146039.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MUKS的頭像MUKS
上一篇 2024-10-29 18:59
下一篇 2024-10-29 18:59

相關推薦

  • import turtle在Python中的用法用法介紹

    本文將從多個方面對import turtle在Python中的用法進行詳細的闡述,包括基礎操作、圖形繪製、顏色設置、圖形控制和turtle實例等,幫助讀者更好的了解和使用turtl…

    編程 2025-04-28
  • Python矩陣轉置函數Numpy

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

    編程 2025-04-28
  • Python中import sys的作用

    Python是一種非常強大的編程語言,它的標準庫提供了許多有用的模塊和函數。sys模塊是Python標準庫中的一個重要模塊,用於與Python解釋器和操作系統進行交互。它允許開發者…

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

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

    編程 2025-04-27
  • 為什麼import代碼會變灰?

    import是Python語言中非常重要的關鍵字,用於引入其他Python模塊以便能夠在當前代碼中使用這些模塊中的功能。然而,當我們在使用import關鍵字的時候,有時候會發現im…

    編程 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

發表回復

登錄後才能評論