淺淺嘗試Numpy的函數:

1.numpy.empty:

numpy.empty方法用來創建一個指定形狀(shape),數據類型(dtype)且未被初始化的數組:

numpy.empty(shape,dtype = float,order = 'C')

參數說明:?

shape:數組形狀。

dtype:數據類型,可選。

order:有C和F兩個選項,分別代表行優先和列優先,是計算機內存中存儲元素的順序。

import numpy as np# 1、numpy.empty
s = np.empty([4, 6], dtype=int)
print(s)

2.numpy.zeros:

創建指定大小的組數,數組元素用0來填充:

numpy.zeros(shape, dtype = float,order = 'C')

參數說明:

shape:數組形狀。

dtype:數據類型,可選。

order:有C和F兩個選項,分別代表行優先和列優先,是計算機內存中存儲元素的順序。

import numpy as np# 默認為浮點數
x = np.zeros(5)
print(x)# 設置類型為整數
y = np.zeros((5, 2), dtype=np.int32)
print(y)# 自定義類型
z = np.zeros((3, 2), dtype=[('x', 'i4'), ('y', 'i4')])
print(z)

numpy.ones:

創建指定形狀的數組,用數組元素1來填充:

numpty.ones(shape, dtype = None,order = 'C')

參數說明:

shape:數組形狀。

dtype:數據類型,可選。

order:有C和F兩個選項,分別代表行優先和列優先,是計算機內存中存儲元素的順序。

import numpy as np# 默認為浮點數:
x = np.ones(5)
print(x)
# 自定義類型
x = np.ones([3, 3], dtype=int)
print(x)

還可以從已有數組創建數組。

(1)numpy.asarray:

numpy.asarray類似于numpy.array,但numpy.asarray的參數只有3個,比numpy.array少兩個。

numpy.asarray(a, dtype = None, order = Npne)

參數說明如下:

a:任意形式的輸入參數,可以是列表、列表的元組,元組、元組的元組,元組的列表。多維數組。

dtype:數據類型,可選。

order:可選,有C和F兩個選項,分別代表行優先和列優先,是計算機內存中存儲元素的順序。?

?將列表轉為ndarray:

import numpy as npx = [4, 5, 6, 10000]
print(x)
a = np.asarray(x)
print(a)
# [4, 5, 6, 10000]
# [    4     5     6 10000]

??將元組轉為ndarray:

import numpy as npx = (100, 2000, 300000)
print(x)
a = np.asarray(x)
print(a)
# (100, 2000, 300000)
# [   100   2000 300000]

元組列表轉為ndarray:

import numpy as npx = [(1, 2, 3), (4, 5, 6)]  # 確保所有元組長度一致
a = np.asarray(x)
print(a)
print('-'*15)# 定義dtype
y = [1, 2, 3]
b = np.asarray(y, dtype=float)
print(b)

(2)numpy.frombuffer:

numpy.frombuffer用于實現動態數組。

numpy.frombuffer接收buffer輸入的參數,以流的形式讀入轉化成ndarray對象。

buffer是字符串的時候,Python3默認str是Unicode類型,所以要轉為bytestring需在原str前加上b。

numpy.frombutter(buffer, dtype = float, count = -1, offset = 0)

?參數說明如下:

buffer:可以是任意對象,會以流的形式讀入。

dtype:返回數組的數據類型,可選。

count:讀取的數據數量,默認為-1,讀取所有數據。

offset:讀取的起始位置,默認為0。

?numpy.frombuffer實例應用:

import numpy as nps = b"Hello World!"
s1 = np.frombuffer(s, dtype='S1')
# [b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']
print(s1)

(2)numpy.fromiter:

numpy.fromiter方法從可迭代對象中建立ndarray對象,返回一維數組。

numpy.fromiter(iterable,dtype,count = -1)

?參數說明如下:

iterable:可迭代對象。

dtype:返回數組的數據類型。

count:讀取的數據數量,默認為-1,讀取所有數據。

numpy.fromiter應用實例:

import numpy as npList = range(15)
it = iter(List)
x = np.fromiter(it, dtype=float)
print(x)
# [ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14.]

數學運算:

算術函數:

1.加、減、乘、除函數

import numpy as npa = np.arange(0, 27, 3, dtype=np.float_).reshape(3, 3)
print('第一個數組:')
print(a)
print('~' * 15)
print("第二個數組:")
b = np.array([3, 6, 9])
print(b)
print('~' * 15)
print("第三個數組:")
c = np.arange(0, 20, 5,dtype=np.int32).reshape(2,2)
print(c)print(np.add(a, b))
print(np.subtract(a, b))
print(np.multiply(a, b))
print(np.divide(a, b))

1.numpy.reciprocal()函數: (求倒數)

import numpy as nps = np.array([888, 1000, 20, 0.1])
print("原數組是:")
print(s)
print('*' * 20)
print("調用reciprocal函數:")
print(np.reciprocal(s))
# 原數組是:
# [8.88e+02 1.00e+03 2.00e+01 1.00e-01]
# ********************
# 調用reciprocal函數:
# [1.12612613e-03 1.00000000e-03 5.00000000e-02 1.00000000e+01]

2.numpy.reciprocal()函數:

import numpy as npbase_array = np.array([2, 4, 8])
print("底數數組是:")
print(base_array)
print('*' * 20)
print('調用power函數計算平方:')
print(np.power(base_array, 2))  # 計算每個元素的平方
print('*' * 20)
print('指數數組是:')
exponents = np.array([1, 2, 4])
print(exponents)
print('*' * 20)
print('再次調用power函數計算底數的對應指數次方:')
# 計算2^1, 4^2, 8^4
print(np.power(base_array, exponents))
# 底數數組是:
# [2 4 8]
# ********************
# 調用power函數計算平方:
# [ 4 16 64]
# ********************
# 指數數組是:
# [1 2 4]

3.numpy.mod()函數:

函數作用公式負數行為
np.mod()計算余數s - w * floor(s / w)余數符號與除數相同
np.remainder()計算余數s - w * round(s / w)余數符號與被除數相同
a = np.array([-5, 5])
b = np.array([2, -2])
print(np.mod(a, b))      # [1, -1]
print(np.remainder(a, b)) # [-1, 1]
import numpy as nps = np.array([-3, 6, 9])
w = np.array([2, 4, 8])
print('第一個數組:')
print(s)
print('*' * 20)
print('第二個數組:')
print(w)
print('*' * 20)
print('調用mod()函數')
print(np.mod(s, w))
print('*' * 20)
print('調用remainder()函數:')
print(np.remainder(s, w))

三角函數:

1.sin(),cos()和tan()函數:

import numpy as npa = np.array([0, 30, 45, 60, 90])
print('不同角度的正弦值:')
# 通過乘 pi/180 轉化為弧度
print('*' * 20)
print(np.sin(a * np.pi / 180))
print('*' * 20)
print("數組中角度的余弦值:")
print(np.cos(a * np.pi / 180))
print('*' * 20)
print('數組中角度的正切值')
print(np.tan(a * np.pi / 180))

2.arcsin(),arccos()和arctan()

import numpy as npa = np.array([0, 30, 45, 60, 90])
print('含有正弦值的數組:')
sin = np.sin(a * np.pi / 180)
print(sin)
print('*' * 20)
print('計算角度的反正弦,返回值以弧度為單位:')
inv = np.arcsin(sin)
print(inv)
print('*' * 20)
print('通過轉化角度制來檢查結果:')
print(np.degrees(inv))
print('*' * 20)
print('arccos 和 arctan函數行為類似:')
cos = np.cos(a * np.pi / 180)
print(cos)
print('*' * 20)
print('反余弦:')
inv = np.arccos(cos)
print(inv)

?

?

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

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

相關文章

IM基本設計思路與有序ID的重要性

文章目錄 概要問題解析思考問題數據基礎讀取寫入總結 概要 說起IM程序我們都不陌生,本篇文章我們就為如何實現一個IM做一個簡單的整體方案設計以及基本的數據結構 問題解析 我們先不上一大堆牛逼哄哄的中間件。 我們先從實現角度,來講講設計思路。 從…

數據結構學習

鏈表 單鏈表 頭插 將x插到下標是k的點后面 將下標是k的點后面的點刪掉 代碼 // head 表示頭結點的下標 // e[i] 表示節點i的值 // ne[i] 表示節點i的next指針是多少 // idx 存儲當前已經用到了哪個點// 初始化 void init() {head -1;idx 0; }// 將x插到頭結點 void add_to_…

0.DJI-PSDK開發準備及資料說明(基于DJI經緯M300RTK和M350RTK無人機上使用)

0.DJI-PSDK開發準備及資料說明(基于DJI經緯M300RTK和M350RTK無人機上使用) 【資料名稱】 DJI經緯M300RTK和M350RTK無人機二次開發資料包。資料包在最下方的百度網盤 一、引言 在進行大疆無人機負載開發的過程中,我整理出一系列有價值的資…

Linux內核TCP/IP協議棧中的設計模式:從面向對象到系統級軟件的跨界實踐

引言 設計模式(Design Patterns)自GoF(Gang of Four)在1994年提出以來,已成為軟件工程領域的核心概念。盡管其經典定義基于面向對象編程(OOP),但設計模式的本質是解決復雜問題的經驗總結,而非局限于特定編程范式。本文以Linux內核的TCP/IP協議棧為例,探討設計模式在…

第十四屆藍橋杯大賽軟件賽省賽C/C++ 大學 B 組(部分題解)

文章目錄 前言日期統計題意: 冶煉金屬題意: 島嶼個數題意: 子串簡寫題意: 整數刪除題意: 總結 前言 一年一度的🏀杯馬上就要開始了,為了取得更好的成績,好名字寫了下前年2023年藍橋…

處理JWT Token失效需求

JWT 本身是無狀態的,這意味著服務器不會保存任何關于 Token 的狀態信息。但為了支持 JWT 的狀態管理(例如:強制使某些 Token 失效),可以借助 Redis 這樣的外部存儲來維護一個黑名單或白名單。 安裝必要的 NuGet 包 首…

PHP代碼審計-01

🌸 連接方式 PHP Mysql連接方式: Mysql(廢棄)MysqliPDO 🌸 常見過濾 intval/addslashes/mysql_real_escape mysqli_escape_string/mysqli_real_escape_string/mysqli::escape_string PDO::quote 參數化查詢 a…

SpringKafka錯誤處理:重試機制與死信隊列

文章目錄 引言一、Spring Kafka錯誤處理基礎二、配置重試機制三、死信隊列實現四、特定異常的處理策略五、整合事務與錯誤處理總結 引言 在構建基于Kafka的消息系統時,錯誤處理是確保系統可靠性和穩定性的關鍵因素。即使設計再完善的系統,在運行過程中也…

藍橋杯2024JavaB組的一道真題的解析

文章目錄 1.問題描述2.問題描述3.思路分析4.代碼分析 1.問題描述 這個是我很久之前寫的一個題目,當時研究了這個題目好久,發布了一篇題解,后來很多人點贊,我都沒有意識到這個問題的嚴重性,我甚至都在懷疑自己&#xf…

性能比拼: Go標準庫 vs Python FastAPI(第二輪)

本內容是對知名性能評測博主 Anton Putra Python (FastAPI) vs Go (Golang) (Round 2) Performance Benchmark 內容的翻譯與整理, 有適當刪減, 相關指標和結論以原作為準 介紹 這是第二輪關于 FastAPI 和 Golang 的對比測試。我幾天前運行了前一次的基準測試,到目…

DeepSeek與ChatGPT的優勢對比:選擇合適的工具來提升工作效率

選DeepSeek還是ChatGPT?這就像問火鍋和披薩哪個香! "到底該用DeepSeek還是ChatGPT?” 這個問題最近在互聯網圈吵翻天!其實這就跟選手機系統-樣,安卓黨iOS黨都能說出一萬條理由,但真正重要的是你拿它來干啥!&am…

Python爬蟲第4節-請求庫urllib的request模塊使用

目錄 前言:基本庫urllib的使用 一、urlopen方法 二、Request類 三、高級用法 前言:基本庫urllib的使用 開始學習爬蟲時,第一步就是要模擬瀏覽器給服務器發送請求。這個時候,你可能會有很多問題:該從哪里開始做呢&a…

Vue3 Pinia Store使用示例

代碼示例: import { defineStore } from "pinia"; // 導入 Pinia 的 defineStore 方法 import { ref } from "vue"; // 導入 Vue 的響應式 API ref import { type Menu } from "/interface"; // 導入自定義的 Menu 類型/…

JavaScript逆向魔法:Chrome開發者工具探秘之旅

在前端開發和安全研究領域,JavaScript逆向工程是一項關鍵技能。它涉及分析和理解代碼的執行流程、數據結構和邏輯,以發現潛在的安全漏洞、提取核心算法或實現功能兼容。本文將結合Chrome開發者工具的調試功能,并通過具體示例幫助你更好地理解…

Qt基礎:資源文件

資源文件 1. 資源文件2. 資源文件創建 1. 資源文件 資源文件顧名思義就是一個存儲資源的文件,在Qt中引入資源文件好處在于他能提高應用程序的部署效率并且減少一些錯誤的發生。 在程序編譯過程中, 添加到資源文件中的文件也會以二進制的形式被打包到可執…

Agent TARS與Manus的正面競爭

Agent TARS 是 Manus 的直接競爭對手,兩者在 AI Agent 領域形成了顯著的技術與生態對抗。 一、技術架構與功能定位的競爭 集成化架構 vs 模塊化設計 Agent TARS 基于字節跳動的 UI-TARS 視覺語言模型,將視覺感知、推理、接地(grounding&#…

使用ssh連接上開發板

最后我發現了問題,我忘記指定用戶名了,在mobaXterm上左上角打開會話,點擊ssh,然后輸入要連接的開發板主機的ip地址,關鍵在這里,要指定你要連接的開發板的系統中存在的用戶,因為通過ssh連接一個設…

【性能優化點滴】odygrd/quill在編譯期做了哪些優化

Quill 是一個高性能的 C 日志庫,它在編譯器層面進行了大量優化以確保極低的運行時開銷。以下是 Quill 在編譯器優化方面的關鍵技術和實現細節: 1. 編譯時字符串解析與格式校驗 Quill 在編譯時完成格式字符串的解析和校驗,避免運行時開銷&…

【數據結構】排序算法(中篇)·處理大數據的精妙

前引:在進入本篇文章之前,我們經常在使用某個應用時,會出現【商品名稱、最受歡迎、購買量】等等這些榜單,這里面就運用了我們的排序算法,作為剛學習數據結構的初學者,小編為各位完善了以下幾種排序算法&…

混雜模式(Promiscuous Mode)與 Trunk 端口的區別詳解

一、混雜模式(Promiscuous Mode) 1. 定義與工作原理 定義:混雜模式是網絡接口的一種工作模式,允許接口接收通過其物理鏈路的所有數據包,而不僅是目標地址為本機的數據包。工作層級:OSI 數據鏈路層&#x…