網站首頁 編程語言 正文
數組編程
使用Numpy數組可以使你利用簡單的數組表達式完成多項數據操作任務,而不需要編寫大量的循環,這個極大的幫助了我們高效的解決問題。我們都知道向量化的數組操作比純Python的等價實現在速度這一方面快很多,至于多少(一到兩個數量級)甚至更多,生活需要慢節奏,但是計算就不可以了,掌握高效的計算模型,可以讓數據分析如虎添翼!
簡單例子
我們生成從-3.14--3.14,按照0.01的間隔生成,最后計算表達式X^2+Y^2的值
邏輯條件作為數組操作
numpy.where函數是三元表達式 x if condition else y 的向量化版本,假設我們有一個布爾值數組和兩個數值數組
首先我們要明確的是我們自己去寫這個邏輯來進行判斷的話就比較的失敗,因為遇到比較大的數組,速度會比較的慢,因為所有的代碼工作都是解釋器Python代碼完成的,其次如果是多維的那就無法湊效了,但是我們使用np.where就可以簡單的完成。
在np.where的第二個和第三個參數并需要數組,它們可以是標量,where在數據分析中的一個典型用法就是根據一個數組來生成一個新的數組。假設你有一個隨機生成的矩陣數據,并且你想要其中的正值都有替換為2,所有的負數都替換為-2,使用這個函數輕松解決。
數學和統計方法
許多關于計算整個數組統計值或關于軸向數據的數據函數,可以作為數組類型的方法被調用。你可以使用聚合函數(通常也叫縮減函數),比如sum,mean,STD(標準差)既可以直接調用也可以使用頂層的numpy函數
?對于統計方法我們的案例其實差不多,至于怎樣去了解那就需要自己去琢磨了,下面有一個基礎數組的統計方法
基礎數組的統計方法:
sum |
計算總數 ? |
mean |
數學平均,0長度的數組平均值為NaN |
std,var |
標準差與方差 |
min,max |
最小值和最大值 |
argmin,argmax |
最小值和最大值的位置 |
cumsum |
從0開始元素累計和(等差數列求和) |
cumprod |
從1開始元素累計積(階乘) |
一行代碼計算1+2+....10數之和
布爾數組的方法
sum通常可以計算布爾值數組中true的個數,對于布爾數組,有兩個非常常用的方法any和all。any用于檢查數組中是否至少有一個true,如果有一個以上那么它就會返回true,any檢查是否每一個值都是true,如果有一個不是true那就返回false。
排序
和Python類建列表相似,numpy數組可以使用sort方法按照位置排序
唯一值和其他的邏輯集合
介紹:
numpy包含一些針對一維ndarray的基礎集合操作。常用的一個方法是np.unique返回的是包含數組唯一的排好序的集合,首先集合肯定是唯一的,那么我們在進行排序,解決它的無序性
應用場景假設有一個數組里面有很多值,而且有大量的重復的值我們需要對其進行排序,就可以使用這個方法了,下面是一些數組集合的操作
數組集合操作:
unique(x) 計算X的唯一值,并排序 intersect1d(x,y) 計算X和Y的交集,并排序 union1d(x,y) 計算X和Y的并集,并排序 in1d(x,y) 計算X中的元素是否包含在Y中,返回一個布爾值數組 setdiff1d(x,y) 差集,在X中但不在Y中的元素 setxor1d(x,y) 異或集,在X或Y中,但不屬于X,Y交集的元素
原文鏈接:https://blog.51cto.com/u_15172991/5428150
相關推薦
- 2022-03-28 Python?PCA降維的兩種實現方法_python
- 2022-05-10 在 VSCode 中如何設置默認的瀏覽器為Chrome或Firefox
- 2022-03-15 Centos7下NFS服務搭建介紹_Linux
- 2022-09-18 Golang實現文件傳輸功能_Golang
- 2022-03-26 android獲取及監聽手機網絡狀態_Android
- 2022-10-05 Python實現單例模式的五種寫法總結_python
- 2022-07-21 python實現利用stack對輸入的式子進行計算算法
- 2022-09-05 Spark repartitionAndSortWithinPartitions
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支