資料分析之numpy庫

2021-08-26 23:35:43 字數 4290 閱讀 3754

numpy的是的python語言的乙個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫.numpy內部解除了的python的pil(全域性直譯器鎖),運算效率極好,是大量機器學習框架的基礎庫!

numpy的主要物件是同構多維陣列。它是乙個元素表(通常是數字),都是相同的型別,由正整數元組索引。在numpy維度中稱為軸。

例如,3d空間中的點的座標[1, 2, 1]具有乙個軸。該軸有3個元素,所以我們說它的長度為3.在下圖所示的例子中,陣列有2個軸。第一軸的長度為2,第二軸的長度為3。

1.ndarray.ndim

陣列的軸數(尺寸)(維度)

import numpy as np

lst=[[1,3,5],[2,4,6]]

np_lst=np.array(lst)

print(np_lst.ndim) #維度 輸出為2

2.ndarray.shape

陣列的大小。這是乙個整數元組,表示每個維度中陣列的大小。對於具有n行和m列的矩陣,shape將是(n,m)shape因此,元組的長度 是軸的數量ndim

import numpy as np

lst=[[1,3,5],[2,4,6]]

np_lst=np.array(lst)

print(np_lst.shape) #形狀(2,3)即表示兩行三列

3.ndarray.size

陣列的元素總數。這相當於元素的乘積shape

import numpy as np

lst=[[1,3,5],[2,4,6]]

np_lst=np.array(lst)

print(np_lst.size) #大小 即2*3=6

4.ndarray.dtype

描述陣列中元素型別的物件

import numpy as np

lst=[[1,3,5],[2,4,6]]

np_lst=np.array(lst)

print(np_lst.dtype) #資料型別

5.ndarray.itemsize

陣列中每個元素的大小(以位元組為單位)

import numpy as np

lst=[[1,3,5],[2,4,6]]

np_lst=np.array(lst)

print(np_lst.itemsize) #陣列中每個元素的大小(以位元組為單位)。例如,型別的元素陣列float64有itemsize8(= 64/8),而其中乙個型別complex32有itemsize4(= 32/8)。它相當於ndarray.dtype.itemsize。

6.ndarray.data

包含陣列實際元素的緩衝區。

7.ndarray.zeros([2,4])

列印2行4列全部都是0的陣列

[[0. 0. 0. 0.]

[0. 0. 0. 0.]]

8.np.random.rand(10, 10)

建立指定形狀(示例為10行10列)的陣列(範圍在0至1之間)

9.np.random.uniform(0, 100)

建立指定範圍內的乙個數

10.np.random.randint(0, 100)

建立指定範圍內的乙個整數

11.np.random.normal(1.75, 0.1, (4, 5))

給定均值/標準差/維度的正態分佈

正態分佈

[[1.76907699 1.88394342 1.69159385 1.75740595 1.69936579]

[1.77768927 1.77417618 1.72996647 1.82366636 1.69116803]

[1.61790573 1.87392643 1.67828031 1.7040284 1.65029464]

[1.73725084 1.63215392 1.68628999 1.68973604 1.72005374]]

after_arr = arr[1:3, 2:4]

print(after_arr)## 擷取第1至2行的第2至3列(從第0行算起)

12.np.arange(1,11).reshape([2,5])

生成1-10的十個數,並把他分成2行五列

import numpy as np

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

stus_score > 80

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一列的最大值(0表示列)

print("每一列的最大值為:")

result = np.amax(stus_score, axis=0)

print(result)

print("每一行的最大值為:")

result = np.amax(stus_score, axis=1)

print(result)

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的最小值(0表示列)

print("每一列的最小值為:")

result = np.amin(stus_score, axis=0)

print(result)

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的平均值(0表示列)

print("每一列的平均值:")

result = np.mean(stus_score, axis=0)

print(result)

# 求每一行的平均值(1表示行)

print("每一行的平均值:")

result = np.mean(stus_score, axis=1)

print(result)

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的方差(0表示列)

print("每一列的方差:")

result = np.std(stus_score, axis=0)

print(result)

# 求每一行的方差(1表示行)

print("每一行的方差:")

result = np.std(stus_score, axis=1)

print(result)

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

print("加分前:")

print(stus_score)

# 為所有平時成績都加5分

stus_score[:, 0] = stus_score[:, 0]+5

print("加分後:")

print(stus_score)

(m行, n列) * (n行, z列) = (m行, z列)
stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 平時成績佔40% 期末成績佔60%, 計算結果

q = np.array([[0.4], [0.6]])

result = np.dot(stus_score, q)

print("最終結果為:")

print(result)

[[84.8]

[81.4]

[78.6]

[84.2]

[78.6]]

Python資料分析之NumPy庫

numpy庫使用python進行科學計算,尤其是資料分析時,所用到的乙個基礎庫。它是大量python數學和科學計算包的基礎,比如我們後面會講到的pandas庫就用到了numpy。pandas庫專門用於資料分析,充分借鑑了python標準庫numpy的相關概念。而python標準庫所提供的內建工具對資...

資料分析常用庫 numpy

乙個在python中做科學計算的基礎庫,重在數值計算,也是大部分python科學計算庫的基礎庫,常用於大型 多維陣列上執行數值計算。numpy中的軸 axis 簡單理解為方向,使用0,1,2 數字表示,對於一位陣列,只有乙個0軸,對於二維陣列,有0軸和1軸,對於三維陣列有0,1,2軸。如果兩個陣列的...

python資料分析之Numpy

numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...