国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)分析 — Numpy 數(shù)組處理

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)分析 — Numpy 數(shù)組處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、簡介

1、概念

NumPy(Numerical Python)是一個用于科學(xué)計算的 Python 庫,提供了多維數(shù)組對象(ndarray)以及數(shù)學(xué)函數(shù),用于處理大規(guī)模數(shù)據(jù)集和執(zhí)行數(shù)值計算。

2、優(yōu)點

當數(shù)據(jù)量達到一定級別后,NumPy 計算會比原生 Python 快。

import time
start_time = time.time()
numbers = list(range(1, 1000001))
total = sum(numbers)
end_time = time.time()
print("原生 Python 計算100萬個元素的和耗時:", end_time - start_time)
import time
import numpy as np
start_time = time.time()
numbers = np.arange(1, 1000001)
total = np.sum(numbers)
end_time = time.time()
print("NumPy 計算100萬個元素的和耗時:", end_time - start_time)

3、特點

Numpy 的主要對象是同種元素的多維數(shù)組。這是?個所有的元素都是?種類型、通過?個正整數(shù)元組索引的元素表格(通常是元素是數(shù)字)。在 Numpy 中維度(dimensions)叫做軸(axes),軸的個數(shù)叫做秩(rank)。

NumPy 數(shù)組是?個多維數(shù)組對象,稱為 ndarray。由兩部分組成:實際的數(shù)據(jù)描述這些數(shù)據(jù)的元數(shù)據(jù)

4、作用

可以構(gòu)造?個比普通列表大的多的數(shù)組,并且可以很靈活的對其中所有的元素進行并行化操作。

5、引用

pip install numpy
import numpy as np # 導(dǎo)入 NumPy 庫并使用別名 np

二、創(chuàng)建數(shù)組

1、創(chuàng)建一維數(shù)組

一維數(shù)組是最簡單的數(shù)組形式,也被稱為向量,它只有一個維度,即行(或列)。

一維數(shù)組類似于 Python 中的列表,但它可以包含相同類型的數(shù)據(jù)元素。

一維數(shù)組在數(shù)學(xué)和計算中常用于表示一系列數(shù)據(jù)點或向量。

創(chuàng)建方式

  • 直接傳入列表的方式
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)  # [1 2 3 4 5]
  • 傳入 range 生成序列
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
arr2 = np.array(range(1, 6))
print(arr2)  # [1 2 3 4 5]
  • 使用 numpy 自帶的 np.arange() 生成數(shù)組
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
# np.arange(起始索引,結(jié)束索引,步長)
arr3 = np.arange(1, 6, 2)
print(arr3)  # [1 3 5]
  • 使用 np.linspace() 生成等間隔的數(shù)組
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
# np.linspace(起始索引,結(jié)束索引,步長)
arr4 = np.linspace(1, 5, num=5)
print(arr4)  # [1. 2. 3. 4. 5.]

3、創(chuàng)建二維數(shù)組

  • 二維數(shù)組是具有兩個維度的數(shù)據(jù)結(jié)構(gòu),通常表示矩陣。
  • 第一個維度表示行數(shù),第二個維度表示列數(shù)。
  • 二維數(shù)組在數(shù)學(xué)和計算中用于表示表格數(shù)據(jù)、圖像、矩陣等多種數(shù)據(jù)結(jié)構(gòu)。
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
# 創(chuàng)建包含2行3列的二維數(shù)組
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
# [[1 2 3]
#  [4 5 6]]

# 創(chuàng)建一個2x3的二維數(shù)組,其中每個元素都是0
arr = np.array([[0, 0, 0], [0, 0, 0]])
print(arr)
# [[0 0 0]
#  [0 0 0]]

# 創(chuàng)建一個2x3的全0二維數(shù)組
arr = np.zeros((2, 3))
print(arr)
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 創(chuàng)建一個2x3的全1二維數(shù)組
arr = np.ones((2, 3))
print(arr)
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 創(chuàng)建一個2x2的單位矩陣
arr = np.eye(2)
print(arr)
# [[1. 0.]
#  [0. 1.]]

三、屬性和數(shù)組運算

1、基本屬性

  • 元素個數(shù):size
  • 元素類型:dtype
  • 元素字節(jié)大小:itemsize
  • 秩:ndim
  • 維度:shape
  • 元素緩沖區(qū):data
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
arr = np.array([1, 2, 3, 4, 5])
print(arr)  # [1 2 3 4 5]

size = arr.size
print(size)  # 5

dtype = arr.dtype
print(dtype)  # int32

itemsize = arr.itemsize
print(itemsize)  # 4

dim = arr.ndim
print(dim)  # 1

shape = arr.shape
print(shape)  # (5,)

data = arr.data
print(data)  # <memory at 0x0000029E7F205C00>

2、數(shù)據(jù)類型

NumPy 支持多種數(shù)據(jù)類型,如整數(shù)、浮點數(shù)、布爾值等??梢允褂?dtype 參數(shù)指定數(shù)據(jù)類型。

類型 說明
bool 用一個字節(jié)存儲的布爾類型(True 或 False)
int 由所在平臺決定其大小的整數(shù)(一般為 int32 或 int64)
int8 一個字節(jié)大小的整數(shù),范圍為 -128 到 127
int16 兩個字節(jié)大小的整數(shù),范圍為 -32768 到 32767
int32 四個字節(jié)大小的整數(shù),范圍為 -2^31 到 2^32-1
int64 八個字節(jié)大小的整數(shù),范圍為 -2^63 到 2^63-1
uint8 一個字節(jié)大小的無符號整數(shù),范圍為 0 到 255
uint16 兩個字節(jié)大小的無符號整數(shù),范圍為 0 到 65535
uint32 四個字節(jié)大小的無符號整數(shù),范圍為 0 到 2^32-1
uint64 八個字節(jié)大小的無符號整數(shù),范圍為 0 到 2^64-1
float16 半精度浮點數(shù),16 位,正負號 1 位,指數(shù) 5 位,精度 10 位
float32 單精度浮點數(shù),32 位,正負號 1 位,指數(shù) 8 位,精度 23 位
float64 或 float 雙精度浮點數(shù),64 位,正負號 1 位,指數(shù) 11 位,精度 52 位
complex64 復(fù)數(shù),分別用兩個 32 位浮點數(shù)表示實部和虛部
complex128 或 complex 復(fù)數(shù),分別用兩個 64 位浮點數(shù)表示實部和虛部
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
# 創(chuàng)建指定數(shù)據(jù)類型的數(shù)組
arr = np.array([1, 2, 3], dtype=np.float32)
print(arr)  # [1. 2. 3.]

3、數(shù)組運算

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
# [[1 2 3]
#  [4 5 6]]
print(arr + arr)
# [[ 2  4  6]
#  [ 8 10 12]]
print(arr - arr)
# [[0 0 0]
#  [0 0 0]]
print(arr * arr)
# [[ 1  4  9]
#  [16 25 36]]
print(arr / arr)
# [[1. 1. 1.]
#  [1. 1. 1.]]

廣播機制

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(1 / arr)
# [[1.         0.5        0.33333333]
#  [0.25       0.2        0.16666667]]

四、索引和切片

1、基本索引

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])

# 獲取第三個元素
element = arr[2]
print(element)  # 3

2、多維數(shù)組索引

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 獲取第二行第三列的元素
element_2d = arr_2d[1, 2]
print(element_2d)  # 6

3、基本切片

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])

# 獲取索引1到3的子數(shù)組
arr_slice = arr[1:4]  # 左閉右開
print(arr_slice)  # [2, 3, 4]

4、多維數(shù)組切片

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 獲取所有行的第二列及之后的元素
arr_2d_slice = arr_2d[:, 1:]  # 逗號前是行,逗號后是列,:表示所有
print(arr_2d_slice)
# [[2, 3],
#  [5, 6]]

5、布爾索引

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])

# 返回一個布爾數(shù)組,表示大于3的元素
bool_index = arr > 3  
subset_by_bool = arr[bool_index]
print(subset_by_bool)  # [4, 5]

6、花式索引

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])

# 獲取索引為第0,2,4的子數(shù)組
indices = np.array([0, 2, 4])
fancy_indexing = arr[indices]
print(fancy_indexing)  # [1, 3, 5]

7、修改元素值

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])

# 將索引1的元素修改為10
arr[1] = 10
print(arr)  # [ 1 10  3  4  5]
import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 將第一行第二列的元素修改為20
arr_2d[0, 1] = 20
print(arr_2d)
# [[ 1 20  3]
#  [ 4  5  6]]

索引和切片的區(qū)別總結(jié):

  • 返回類型: 索引返回的是單個元素值,而切片返回的是數(shù)組的一個視圖。
  • 是否影響原數(shù)組: 對索引得到的元素的修改不會影響原數(shù)組,而對切片的修改會影響原數(shù)組。
  • 用法: 索引用于獲取特定位置的元素,而切片用于獲取數(shù)組的子集。

五、統(tǒng)計函數(shù)

1、均值

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
mean_value = np.mean(arr)
print(mean_value)  # 3.0

2、中位數(shù)

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
median_value = np.median(arr)
print(median_value)  # 3.0

3、總和

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
sum_value = np.sum(arr)
print(sum_value)  # 15

4、乘積

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
product_value = np.prod(arr)
print(product_value)  # 120

5、最小值

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
min_value = np.min(arr)
print(min_value)  # 1

6、最大值

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
max_value = np.max(arr)
print(max_value)  # 5

7、標準差

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
std_deviation = np.std(arr)
print(std_deviation)  # 1.4142135623730951

8、方差

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
variance = np.var(arr)
print(variance)  # 2.0

9、協(xié)方差

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([5, 4, 3, 2, 1])
covariance_matrix = np.cov(arr1, arr2)
print(covariance_matrix)
# [[ 2.5 -2.5]
#  [-2.5  2.5]]

10、百分位數(shù)

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
percentile_50 = np.percentile(arr, 50)
print(percentile_50)  # 3.0

11、直方圖

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
histogram_values, bin_edges = np.histogram(arr, bins=5)
print(histogram_values, bin_edges)  # [1 1 1 1 1] [1.  1.8 2.6 3.4 4.2 5. ]

12、相關(guān)系數(shù)

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([5, 4, 3, 2, 1])
correlation_matrix = np.corrcoef(arr1, arr2)
print(correlation_matrix)
# [[ 1. -1.]
#  [-1.  1.]]

六、按條件篩選

1、基本用法

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
indices = np.where(arr > 2)
print(indices)  # (array([2, 3, 4], dtype=int64),)

2、返回滿足條件的元素

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
values = arr[np.where(arr > 2)]
print(values)  # [3 4 5]

3、替換滿足條件的元素

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
arr[np.where(arr > 2)] = 0  # 大于2的返回0
print(arr)  # [1 2 0 0 0]

4、使用三元表達式

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
new_arr = np.where(arr > 2, 0, arr)  # 大于2的返回0
print(new_arr)  # [1 2 0 0 0]

5、多條件選擇

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([1, 2, 3, 4, 5])
indices = np.where((arr > 2) & (arr < 5))
print(indices)  # (array([2, 3], dtype=int64),)

6、返回滿足條件的元素的坐標

import numpy as np  # 導(dǎo)入 NumPy 庫并使用別名 np

arr = np.array([[1, 2, 3], [4, 5, 6]])
coordinates = np.where(arr > 2)
print(coordinates)  # (array([0, 1, 1, 1], dtype=int64), array([2, 0, 1, 2], dtype=int64))

arr = np.array([[1, 2, 3], [4, 5, 6]])
coordinates = arr[np.where(arr > 2)]
print(coordinates)  # [3 4 5 6]

記錄學(xué)習(xí)過程,歡迎討論交流,尊重原創(chuàng),轉(zhuǎn)載請注明出處~文章來源地址http://www.zghlxwxcb.cn/news/detail-834865.html

到了這里,關(guān)于數(shù)據(jù)分析 — Numpy 數(shù)組處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【數(shù)據(jù)分析之道-NumPy(四)】numpy廣播機制

    【數(shù)據(jù)分析之道-NumPy(四)】numpy廣播機制

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識。 ? 本文錄入于《數(shù)據(jù)分析之道》 ,本專欄針對大學(xué)生、初級數(shù)據(jù)分析工程師精心打造,對python基礎(chǔ)知識點逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,可以閱讀《數(shù)據(jù)分析之道》中全部文章內(nèi)容

    2023年04月19日
    瀏覽(29)
  • 【數(shù)據(jù)分析之道-Numpy(八)】numpy統(tǒng)計函數(shù)

    【數(shù)據(jù)分析之道-Numpy(八)】numpy統(tǒng)計函數(shù)

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識。 ? 本文錄入于《數(shù)據(jù)分析之道》 ,本專欄針對大學(xué)生、初級數(shù)據(jù)分析工程師精心打造,對python基礎(chǔ)知識點逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,可以閱讀《數(shù)據(jù)分析之道》中全部文章內(nèi)容

    2024年02月06日
    瀏覽(19)
  • 【數(shù)據(jù)分析之道-NumPy(三)】numpy切片與索引

    【數(shù)據(jù)分析之道-NumPy(三)】numpy切片與索引

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識。 ? 本文錄入于《數(shù)據(jù)分析之道》 ,本專欄針對大學(xué)生、初級數(shù)據(jù)分析工程師精心打造,對python基礎(chǔ)知識點逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,可以閱讀《數(shù)據(jù)分析之道》中全部文章內(nèi)容

    2023年04月09日
    瀏覽(17)
  • 【數(shù)據(jù)分析之道-NumPy(七)】numpy字符串函數(shù)

    【數(shù)據(jù)分析之道-NumPy(七)】numpy字符串函數(shù)

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識。 ? 本文錄入于《數(shù)據(jù)分析之道》 ,本專欄針對大學(xué)生、初級數(shù)據(jù)分析工程師精心打造,對python基礎(chǔ)知識點逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,可以閱讀《數(shù)據(jù)分析之道》中全部文章內(nèi)容

    2024年02月04日
    瀏覽(17)
  • 【數(shù)據(jù)分析 - 基礎(chǔ)入門之NumPy⑥】- NumPy案例鞏固強化

    【數(shù)據(jù)分析 - 基礎(chǔ)入門之NumPy⑥】- NumPy案例鞏固強化

    大家好!我是初心,本期給大家?guī)淼氖?NumPy 案例鞏固強化練習(xí)題,共17道,親測。 注:題目素材來自 ——《千鋒教育》 本期跟大家分享的就是這些題目了!希望大家可以多多實操練習(xí),加強鞏固,以便更好的掌握 NumPy 。 文章直達 鏈接 上期回顧 【數(shù)據(jù)分析 - 基礎(chǔ)入門之

    2024年02月15日
    瀏覽(19)
  • 【數(shù)據(jù)分析 - 基礎(chǔ)入門之NumPy④】NumPy基本操作 - 一

    【數(shù)據(jù)分析 - 基礎(chǔ)入門之NumPy④】NumPy基本操作 - 一

    大家好!我是初心,本期給大家?guī)淼氖恰尽綨umPy系列】基本操作 - 一。 作者的【 Python 數(shù)據(jù)分析】專欄正在火熱更新中,如果本文對您有幫助,歡迎大家點贊 + 評論 + 收藏 ! 每日金句分享: 選擇你所喜歡的,愛你所選擇的。』—— 托爾斯泰「托爾斯泰 。 NumPy( Numerical Py

    2024年02月13日
    瀏覽(25)
  • 【數(shù)據(jù)分析】numpy (二)

    【數(shù)據(jù)分析】numpy (二)

    numpy作為數(shù)據(jù)分析,深度學(xué)習(xí)常用的庫,本篇博客我們來介紹numpy的一些進階用法: 一,numpy的常用簡單內(nèi)置函數(shù): 1.1求和: 1.2求平均值: 1.3求最小值: 1.4求最大值: 以下就不再一一列舉,我轉(zhuǎn)成表格大家可以去Python手動嘗試一下。 np.std() 標準差 np.var() 方差 np.median() 中位

    2024年02月14日
    瀏覽(14)
  • 【Python數(shù)據(jù)分析】數(shù)據(jù)分析之numpy基礎(chǔ)

    【Python數(shù)據(jù)分析】數(shù)據(jù)分析之numpy基礎(chǔ)

    實驗環(huán)境:建立在Python3的基礎(chǔ)之上 numpy提供了一種數(shù)據(jù)類型,提供了數(shù)據(jù)分析的運算基礎(chǔ),安裝方式 導(dǎo)入numpy到python項目 本文以案例的方式展示numpy的基本語法,沒有介紹語法的細枝末節(jié),筆者認為通過查閱案例就能掌握基本用法。 numpy數(shù)組的基本概念 numpy默認所有元素具有

    2024年02月10日
    瀏覽(27)
  • 數(shù)據(jù)分析--Numpy初級(一)

    數(shù)據(jù)分析--Numpy初級(一)

    Numpy是數(shù)據(jù)分析的基礎(chǔ)庫,它支持大量的維度計算與矩陣運算。同時他也是一個運行速度非??斓臄?shù)學(xué)庫,主要用于數(shù)組計算,具有線性代數(shù)、傅里葉變換、隨機數(shù)生成等功能。 Numpy最重要的一個特點就是其N維數(shù)組對象ndarray他是一系列同類型數(shù)據(jù)的集合,創(chuàng)建一個ndarray對象

    2024年02月08日
    瀏覽(16)
  • 【數(shù)據(jù)分析入門】Numpy進階

    【數(shù)據(jù)分析入門】Numpy進階

    pandas 是一個功能強大的 Python 數(shù)據(jù)分析庫 ,為 數(shù)據(jù)處理和分析 提供了高效且靈活的工具。它是在 NumPy 的基礎(chǔ)上構(gòu)建的,為 處理結(jié)構(gòu)化數(shù)據(jù)(如表格數(shù)據(jù)) 和 時間序列數(shù)據(jù) 提供了 豐富的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作方法 。 pandas 提供了兩種主要的數(shù)據(jù)結(jié)構(gòu): Series 和 DataFrame 。 S

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包