Numpy科學計算與數據分析:Numpy數組創建與應用入門

Numpy數組創建實戰

學習目標

通過本課程的學習,學員將掌握使用Numpy庫創建不同類型的數組的方法,包括一維數組、多維數組、全零數組、全一陣列、空數組等。本課程將通過理論講解與實踐操作相結合的方式,幫助學員深入理解Numpy數組的創建過程及其應用場景。

相關知識點

Numpy數組應用

學習內容

1 Numpy數組應用

1.1 Numpy數組的基本概念

Numpy是Python中用于處理數組的一個庫,它提供了大量的函數用于數組的創建、操作和數學運算。Numpy數組(ndarray)是Numpy的核心對象,它是一個固定類型的多維數組,其中所有元素必須是相同類型,通常為數字。Numpy數組相比于Python內置的列表,具有更高的效率和更多的功能。

Numpy數組的創建可以通過多種方式實現,包括從Python列表轉換、使用特定的函數創建等。Numpy數組支持多種數據類型,如整型、浮點型、復數型等,這些數據類型在創建數組時可以通過dtype參數指定。

1.1.1 Numpy數組的屬性

Numpy數組有幾個重要的屬性,這些屬性可以幫助人們更好地理解和操作數組:

  • ndim:數組的維度數。
  • shape:一個表示數組形狀的元組,對于二維數組,shape將返回一個包含行數和列數的元組。
  • size:數組中元素的總數。
  • dtype:數組中元素的數據類型。
  • itemsize:數組中每個元素的字節大小。
  • data:包含實際數組元素的緩沖區。
1.1.2 創建Numpy數組

創建Numpy數組最簡單的方法是從Python列表轉換而來。例如,創建一個一維數組:

import numpy as np# 從Python列表創建一維數組
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))

輸出:

[1 2 3 4 5]
<class 'numpy.ndarray'>
1.2 使用Numpy創建一維和多維數組

Numpy提供了多種方法來創建一維和多維數組,這些方法可以根據不同的需求靈活使用。

1.2.1 創建一維數組

一維數組是最簡單的Numpy數組形式,可以通過從Python列表轉換或使用np.arange函數創建。

import numpy as np
# 從Python列表創建一維數組
arr1 = np.array([1, 2, 3, 4, 5])
print("從列表創建的一維數組:", arr1)# 使用np.arange創建一維數組
arr2 = np.arange(1, 6)
print("使用np.arange創建的一維數組:", arr2)
1.2.2 創建多維數組

多維數組可以通過嵌套的Python列表或使用np.array函數直接創建。Numpy還提供了np.zeros、np.ones等函數來創建特定形狀的多維數組。

import numpy as np
# 從嵌套列表創建二維數組
arr3 = np.array([[1, 2, 3], [4, 5, 6]])
print("從嵌套列表創建的二維數組:\n", arr3)# 使用np.zeros創建全零二維數組
arr4 = np.zeros((3, 4))
print("使用np.zeros創建的全零二維數組:\n", arr4)# 使用np.ones創建全一二維數組
arr5 = np.ones((2, 3))
print("使用np.ones創建的全一二維數組:\n", arr5)
1.3 創建特殊類型的數組

Numpy還提供了一些特殊的函數來創建特定類型的數組,這些數組在實際應用中非常有用。

1.3.1 創建全零數組

全零數組在初始化變量或作為占位符時非常有用。可以使用np.zeros函數創建全零數組。

import numpy as np
# 創建全零一維數組
zero_arr1 = np.zeros(5)
print("全零一維數組:", zero_arr1)# 創建全零二維數組
zero_arr2 = np.zeros((3, 4))
print("全零二維數組:\n", zero_arr2)
1.3.2 創建全一陣列

全一陣列在初始化變量或作為占位符時也非常有用。可以使用np.ones函數創建全一陣列。

import numpy as np
# 創建全一一維數組
one_arr1 = np.ones(5)
print("全一一維數組:", one_arr1)# 創建全一二維數組
one_arr2 = np.ones((3, 4))
print("全一二維數組:\n", one_arr2)
1.3.3 創建空數組

空數組在某些情況下用于初始化化,但不分配具體的值。可以使用numpy.empty()函數創建空數組。numpy.empty()的“空”主要體現在它只是簡單地在內存中分配了一塊空間來存儲指定形狀的數組,而不對這塊內存中的數據進行初始化,所以數組中的值都是隨機的(實際上是內存中原有的值)。

這里創建的數組可能出現值全是1的情況,因為在使用numpy.empty()之前,使用了np.ones()函數創建數組,導致分配給numpy.empty()的內存區域中殘留的值恰好都是1。這種情況是由于內存的分配和釋放機制造成的,并不代表numpy.empty()創建的數組值總是全為1。實際上,numpy.empty()創建的數組中的值是未定義的,取決于內存的初始狀態,可能為任意值。

import numpy as np
# 創建空一維數組
empty_arr1 = np.empty(5)
print("空一維數組:", empty_arr1)# 創建空二維數組
empty_arr2 = np.empty((3, 4))
print("空二維數組:\n", empty_arr2)

如果想看到更類似隨機的值,可以重啟內核后直接運行創建空數組的代碼塊,或者更改所創建數組的形狀(如np.empty(2)、np.empty(8)、np.empty((4, 4))等),這樣可能會改變使用的內存空間從而看到不一樣的值。

通過本課程的學習,我們已經掌握了使用Numpy創建不同類型的數組的方法。這些知識將為后續的數組操作和數學運算打下堅實的基礎。希望學員在實際應用中能夠靈活運用這些技能,提高編程效率。


1. Numpy入門:數組操作與科學計算基礎
2. Numpy入門:多平臺安裝與基礎環境配置
3. Numpy數組創建與應用入門
4. Numpy數組屬性入門:形狀、維度與大小
5. Numpy數組索引與切片入門
6. Numpy數組操作入門:合并、分割與重塑
7. Numpy數學函數入門與實踐
8. Numpy數據分析基礎:統計函數應用
9. Numpy隨機數生成入門
10. Numpy線性代數基礎與實踐
11. Numpy文件操作入門:數組數據的讀取與保存
12. Numpy廣播機制入門與實踐
13. Numpy布爾索引與花式索引實戰
14. Numpy高效數據處理與優化
15. Numpy數據分析與圖像處理入門

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92874.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92874.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何回收內存對象,有哪些回收算法?

它的主要不足有兩個&#xff1a; 效率問題&#xff0c;標記和清除兩個過程的效率都不高。 空間問題&#xff0c;標記清除之后會產生大量不連續的內存碎片&#xff0c;空間碎片太多可能會導致以后在程序運行過程中需 要分配較大對象時&#xff0c;無法找到足夠的連續內存而不得不…

Numpy科學計算與數據分析:Numpy文件操作入門之數組數據的讀取和保存

Numpy文件讀寫實戰 學習目標 通過本課程&#xff0c;學員將深入了解如何使用Numpy庫進行數組數據的讀取和保存&#xff0c;包括文本文件和二進制文件的處理方法。通過本課程的學習&#xff0c;學員將能夠熟練掌握Numpy在文件操作中的應用&#xff0c;為數據處理和分析打下堅實…

AutoMQ-Kafka的替代方案實戰

AutoMQ無縫兼容kafka&#xff0c;并且借助S3實現數據統一存儲。這個確實解決了大問題&#xff01; 1. Kafka的挑戰 橫向擴展困難&#xff1a;擴容kafka需要手動創建分區遷移策略和復制分區數據。這個過程不僅風險高、資源密集而且耗時。存儲成本高&#xff1a;計算和存儲在kaf…

Numpy科學計算與數據分析:Numpy線性代數基礎與實踐

Numpy線性代數實踐&#xff1a;從矩陣乘法到特征值 學習目標 通過本課程&#xff0c;學員將掌握Numpy中處理線性代數問題的基本方法&#xff0c;包括矩陣乘法、求解線性方程組以及計算特征值和特征向量。本課程將通過理論與實踐相結合的方式&#xff0c;幫助學員深入理解這些…

CrackMapExec--安裝、使用

用途限制聲明&#xff0c;本文僅用于網絡安全技術研究、教育與知識分享。文中涉及的滲透測試方法與工具&#xff0c;嚴禁用于未經授權的網絡攻擊、數據竊取或任何違法活動。任何因不當使用本文內容導致的法律后果&#xff0c;作者及發布平臺不承擔任何責任。滲透測試涉及復雜技…

深入理解模板方法模式:框架設計的“骨架”藝術

目錄 前言 一、模板方法模式的核心思想 二、模板方法模式的結構組成 1. 抽象類&#xff08;Abstract Class&#xff09; 2. 具體子類&#xff08;Concrete Class&#xff09; 三、C 實現示例&#xff1a;咖啡與茶的制作流程 步驟 1&#xff1a;定義抽象類&#xff08;飲料…

LinkedList 深度解析:核心原理與實踐

文章目錄 一、底層數據結構與特性 1. 核心數據結構 2. 關鍵特性 二、核心操作機制解析 1. 添加元素機制 2. 刪除元素機制 三、性能關鍵點分析 1. 時間復雜度對比 2. 空間開銷 四、線程安全解決方案 1. 同步包裝器 2. 使用并發集合 五、經典面試題解析 1. ArrayList 和 LinkedLi…

Jmeter性能測試之安裝及啟動Jmeter

1. 安裝JDK Jmeter依賴JDK環境,如果電腦沒有JDK,需要安裝JDK.如下是Jmeter版本與JDK版本對應關系. 2. Jmeter下載安裝 下載鏈接&#xff1a;https://archive.apache.org/dist/jmeter/binaries/ windows下載.zip壓縮包Linux下載.tar壓縮包 下一步下一步就行 3. 配置環境變…

ShadowKV 機制深度解析:高吞吐長上下文 LLM 推理的 KV 緩存“影子”方案

背景與核心思想簡介 在LLM的長上下文推理中&#xff0c;KV Cache成為影響速度和內存的關鍵因素。每生成一個新token&#xff0c;模型需要對所有先前token的鍵&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;向量執行自注意力計算。傳統方法會將所有過去的K/V向量…

spring-ai整合PGVector實現RAG

背景 最近公司的產品和業務線&#xff0c;要求往ai方向靠攏&#xff0c;在研發各種智能體&#xff0c;整理下最近學習的過程&#xff0c;將一部分內容整理出來&#xff0c;分享給需要的同學。 這篇文章將會提供詳細的例子以及踩坑說明。主要內容是整合spring-ai&#xff0c;同…

Git 亂碼文件處理全流程指南

一、問題背景與核心目標 1.1 問題描述 在 Git 倉庫中發現了一個異常亂碼文件&#xff1a; "\001\342\240\025\250\325\3738\f\036\035\006\004\240\002\240\002\b\003\004\340\002\340\002\340\002\034\034\001\001\004:\016\020\001\005\016\016\016\211\266\257\211\266…

JavaScript垃圾回收機制

1.垃圾回收的概念 1.1 什么是垃圾回收機制&#xff1a; GC 即 Garbage Collection &#xff0c;程序工作過程中會產生很多"垃圾"&#xff0c;這些垃圾是程序不用的內存或者是之前用過了&#xff0c;以后不會再用的內存空間&#xff0c;而 GC 就是負責回收垃圾的&…

工業相機選擇規則

一、相機分辨率選擇相機分辨率指的是相機傳感器捕捉圖像細節的能力&#xff0c;具體來說就是傳感器上有效像素的總數量。可以把它理解為構成數字圖像的“小方塊”&#xff08;像素&#xff09;有多少個。工業領域內相機的分辨率的選擇根據更具產品需要的精度要求和產品大小來確…

【Web安全】csrf、ssrf和xxe的區別

CSRF、SSRF 和 XXE 是三種不同類型的網絡安全漏洞&#xff0c;它們的原理、攻擊目標、利用方式和危害場景均有顯著區別。以下從核心定義、原理、場景等維度詳細對比三者的差異。一、核心定義與原理對比漏洞類型全稱核心定義核心原理CSRF跨站請求偽造攻擊者誘導用戶在已登錄的情…

【Lua】XLua一鍵構建工具

將以下代碼放入Editor文件夾&#xff0c;點擊菜單欄的XLua/一鍵生成代碼和熱補丁 即可。using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using UnityEditor; using UnityEngine;/// <summary> /// XLua自動化構建工具 //…

20250808:EasyGBS 對接大華 ICC 平臺問題處理

最近有個現場在對接大華 ICC 平臺時&#xff0c;客戶反饋&#xff1a;EasyGBS 級聯成功&#xff0c;但 ICC 顯示下級離線。EasyGBS 成功對接過很多家國標平臺&#xff0c;但這種情況確實少見。我們遠程過去確認配置無誤后&#xff0c;就進行了抓包&#xff0c;拿到包我就納悶了…

js使用webscoket時使用自定義二進制包協議時并發問題處理

this.server new WebSocket.Server({ port: this.port });this.server.on(connection, (ws, req) > {const uniqueId dataUtil.uuid();ws.id uniqueId;global.serverSession.set(uniqueId, ws);logger.debug({ message: 客戶端已連接, traceId: ws.id, address: req.sock…

元數據管理與數據治理平臺:Apache Atlas 分類傳播 Classification Propagation

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。Apache Atlas 框架是一套可擴展的核心基礎治理服務&#xff0c;使企業能夠有效、高效地滿足 Hadoop 中的合規性要求&#xff0c;并支持與整個企…

TSF應用開發與運維部署

架構演進歷程&#xff1a;單體架構-->SOA架構-->微服務架構-->Service Mesh騰訊微服務平臺TSF (Tencent Service Framework) 是一個圍繞應用和微服務的 PaaS 平臺。提供服務全生命周期管理能力和數據化運營支持。提供多維度應用、服務、機器的監控數據&#xff0c;助力…

linux開發之mmap內存映射

mmap概念 mmp是 將文件或設備直接映射到進程的虛擬內存空間 的一種機制&#xff0c;可實現程序像訪問內存一樣訪問文件&#xff0c;而不需要傳統的 read()/write()系統調用 文件內容被映射到進程的地址空間&#xff0c;讀寫文件就像操作內存一樣&#xff0c;操作系統負責自動同…