NumPy 數組創建方法與索引訪問詳解

来源:https://www.cnblogs.com/xiaowange/p/18175897
-Advertisement-
Play Games

NumPy 創建數組 NumPy 中的核心數據結構是 ndarray,它代表多維數組。NumPy 提供了多種方法來創建 ndarray 對象,包括: 使用 array() 函數 array() 函數是最常用的方法之一,它可以將 Python 列表、元組甚至其他數組轉換為 ndarray 對象。 語法 ...


NumPy 創建數組

NumPy 中的核心數據結構是 ndarray,它代表多維數組。NumPy 提供了多種方法來創建 ndarray 對象,包括:

使用 array() 函數

array() 函數是最常用的方法之一,它可以將 Python 列表、元組甚至其他數組轉換為 ndarray 對象。

語法:

ndarray = np.array(data, dtype=dtype, order=order)

參數說明:

data:可以是 Python 列表、元組或其他數組。
dtype:指定數組元素的數據類型,預設為 float64
order:指定數組元素的記憶體存儲順序,預設為 C 順序(行優先)。

示例:

import numpy as np

# 創建一維數組
arr1 = np.array([1, 2, 3, 4, 5])

# 創建二維數組
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

# 創建三維數組
arr3 = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

print(arr1)
print(arr2)
print(arr3)

輸出:

[1 2 3 4 5]
[[1 2 3]
 [4 5 6]]
[[[ 1  2  3]
  [ 4  5  6]]
 [[ 7  8  9]
  [10 11 12]]]

使用 zeros()ones() 函數

zeros()ones() 函數可以創建指定形狀和數據類型的全零或全一數組。

語法:

ndarray = np.zeros(shape, dtype=dtype)
ndarray = np.ones(shape, dtype=dtype)

參數說明:

shape:指定數組的形狀,可以是元組或列表。
dtype:指定數組元素的數據類型,預設為 float64

示例:

import numpy as np

# 創建一個 3x4 的全零數組
arr1 = np.zeros((3, 4))

# 創建一個 2x3 的全一數組
arr2 = np.ones((2, 3))

print(arr1)
print(arr2)

輸出:

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

使用 empty() 函數

empty() 函數可以創建指定形狀的空數組,但數組元素的值未定義。

語法:

ndarray = np.empty(shape, dtype=dtype)

參數說明:

shape:指定數組的形狀,可以是元組或列表。
dtype:指定數組元素的數據類型,預設為 float64

示例:

import numpy as np

# 創建一個 3x4 的空數組
arr = np.empty((3, 4))

print(arr)

輸出:

[[nan nan nan nan]
 [nan nan nan nan]
 [nan nan nan nan]]

使用特殊函數

NumPy 還提供了一些特殊函數來創建特定類型的數組,例如:

arange():創建等差數列數組。
linspace():創建線性間隔的數組。
eye():創建單位矩陣。
diag():創建對角矩陣。

請參考 NumPy 文檔瞭解有關這些函數的更多信息。

練習

創建以下數組:

一個包含 10 個元素的遞增整數數組(從 0 到 9)。
一個包含 20 個元素的隨機浮點數數組(範圍為 0 到 1)。
一個 3x3 的單位矩陣。

請在評論中分享您的答案。

Sure, here is the requested Markdown formatted content:

NumPy 數組索引

NumPy 數組可用於表示多維數據。訪問數組元素是 NumPy 中常見操作之一。

訪問一維數組元素

NumPy 數組中的索引從 0 開始,這意味著第一個元素的索引為 0,第二個元素的索引為 1,依此類推。

要訪問一維數組中的元素,可以使用方括弧 [] 並指定元素的索引。

示例:

import numpy as np

# 創建一維數組
arr = np.array([1, 2, 3, 4, 5])

# 訪問第一個元素
print(arr[0])  # 輸出:1

# 訪問第二個元素
print(arr[1])  # 輸出:2

# 訪問最後一個元素
print(arr[-1])  # 輸出:5

訪問二維數組元素

要訪問二維數組中的元素,可以使用逗號分隔的兩個索引:第一個索引表示行,第二個索引表示列。

示例:

import numpy as np

# 創建二維數組
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 訪問第一行第一個元素
print(arr[0, 0])  # 輸出:1

# 訪問第二行第三列元素
print(arr[1, 2])  # 輸出:6

# 訪問最後一個元素
print(arr[-1, -1])  # 輸出:9

訪問三維及更高維數組元素

對於三維及更高維數組,可以使用逗號分隔的多個索引來訪問元素,每個索引表示相應維度的索引。

示例:

import numpy as np

# 創建三維數組
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

# 訪問第一個數組的第二個數組的第三個元素
print(arr[0, 1, 2])  # 輸出:6

負索引

NumPy 還支持負索引,從數組的末尾開始計數。

例如,要訪問二維數組的最後一個元素,可以使用 arr[-1, -1]

練習

創建一個 5x5 的二維數組 arr,並列印以下元素:

第一行的第一個元素
第二行的最後一個元素
第三列的第一個元素
第三個元素

在評論中分享您的代碼和輸出。

最後

為了方便其他設備和平臺的小伙伴觀看往期文章:

微信公眾號搜索:Let us Coding,關註後即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、是什麼 當對一個文檔進行佈局(layout)的時候,瀏覽器的渲染引擎會根據標準之一的 CSS 基礎框盒模型(CSS basic box model),將所有元素表示為一個個矩形的盒子(box) 一個盒子由四個部分組成:content、padding、border、margin content,即 ...
  • 本文的目的,是為了讓已經有 Vue2 開發經驗的 人 ,快速掌握 Vue3 的寫法。 因此, 本篇假定你已經掌握 Vue 的核心內容 ,只為你介紹編寫 Vue3 代碼,需要瞭解的內容。 一、Vue3 里 script 的三種寫法 首先,Vue3 新增了一個叫做組合式 api 的東西,英文名叫 Com ...
  • 最近,群里在討論一個很有意思的線條動畫效果,效果大致如下: 簡單而言,就是線條沿著不規則路徑的行進動畫,其中的線條動畫可以理解為是特殊的光效。 本文,我們將一起探索,看看在不使用 JavaScript/Canvas 的基礎上,使用純 CSS/SVG 的方式,我們可以如何大致的還原上述的線條動畫效果。 ...
  • 前言 jquery時代更新視圖是直接對DOM進行操作,缺點是頻繁操作真實 DOM,性能差。react和vue時代引入了虛擬DOM,更新視圖是對新舊虛擬DOM樹進行一層層的遍歷比較,然後找出需要更新的DOM節點進行更新。這樣做的缺點就是如果DOM樹很複雜,在進行新舊DOM樹比較的時候性能就比較差了。那 ...
  • X-Frame-Options 是一個HTTP響應頭,用於控制網頁是否可以嵌套在 <frame>, <iframe>, <embed> 或者 <applet> 中。通過設置 X-Frame-Options 頭部,網站管理員可以防止網頁被嵌套到其他網站的框架中,從而有效防範點擊劫持等安全風險。下麵是關 ...
  • /******************************************************************************************************** * * file name: Zqh_順序表.c * author : keyword2 ...
  • 一、定義 在class的聲明裡頭,真正有用的兩樣東西是data members 和 member functions: Data members:表示根據這個class所產生的object裡頭會有些什麼東西,它事實上也是占據object記憶體的唯一東西(除非引入虛擬機制)。通常為數據的封裝性,我們把d ...
  • title: Django高級表單處理與驗證實戰 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 後端開發 tags: Django表單 驗證邏輯 模板渲染 安全措施 表單測試 重定向管理 最佳實踐 引言: 在Web應用開 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...