python3資料分析之Numpy

2021-10-23 14:57:53 字數 3455 閱讀 6473

ndarray

儲存風格:【ndarray 相同型別】【list - 不同型別 】

並行化運算: ndarray支援向量化運算

底層語言:c語言,解除了gil

1.屬性

ndarray.shape #大小(幾行幾列)

ndarray.ndim #維度(幾維)

ndarray.size #多少個元素

ndarray.itemsize #每個元素的大小

ndarray.dtype #元素的資料型別

2.方法

#返回新的ndarray,原始資料沒有改變

data.reshape((10

,8))

#沒有返回值,對原始的ndarray進行了修改

data.resize((10

,8))

#轉置 行變成列,列變成行

data.t

data.astype(

"int32"

)data.tostring(

)#序列化到本地

data.

max(axis=

0)

np.zeros(shape=(3

,4), dtype=

"float32"

)np.ones(shape=[2

,3], dtype=np.int32)

np.eye(

4)

np.array(

[1.1

,2.2

,3.3

], dtype=

"float32"

)np.array(

[1.1

,2.2

,3.3

], dtype=np.float32)

data1 = np.array(score)

#深拷貝

data2 = np.asarray(score)

#淺拷貝

data3 = np.copy(score)

#深拷貝

np.linspace(0,

10,5)

#5是資料個數

np.arange(0,

11,5)

#5是步長

# 均勻分布

data1 = np.random.uniform(low=-1

, high=

1, size=

1000000

)# 正態分佈

data2 = np.random.normal(loc=

1.75

, scale=

0.1, size=

1000000

)data3 = np.random.normal(0,

1,(10

,5))

np.unique(temp)

set(data)

# 1 邏輯判斷, 如果大於0.5就標記為true 否則為false

data >

0.5# 如果大於0.5就標記為true 否則為false;返回全資料的true/false矩陣

data[0:

2,0:

5]>

0# (data > 0.5) and (data < 1)

np.logical_and(data >

0.5, data <1)

np.logical_or(data >

0.5, data <

-0.5

)#判斷是否有nan值

np.isnan(data)

#返回全資料的true/false矩陣

np.all()【只要有乙個false就返回false,只有全是true才返回true】

np.any()【只要有乙個true就返回true,只有全是false才返回false】

data[data >

0.5]

=1.1

# 將邏輯判斷為true的設定為1.1

np.all

(stock_change[0:

2,0:

5]>0)

# 判斷是否全都符合條件,返回true/false

np.any

(stock_change[:5

,:]>0)

# 判斷是否存在滿足條件的資料,返回true/false

np.where(布林值, true的位置的值, false的位置的值)

np.where(data >0,

1,0)

np.where(np.logical_or(data >

0.5, data <

-0.5),

11,3)

統計指標:【min, max, mean, median, var, std】

data.

max(axis=0)

np.max

(data, axis=-1

)np.argmax(data, axis=-1

)# 返回最大值、最小值所在位置

#np.argmin(temp, axis=)

weights_mat = np.mat([[

0.3],[

0.7]

])

# data, weights為2維陣列

np.matmul(data, weights)

np.dot(data, weights)

# data_mat 、 weights_mat為矩陣

data_mat * weights_mat

data @ weights

#水平方向合併(追加列)

np.hstack(

(a, b)

)np.concatenate(

(a, b)

, axis=1)

#垂直合併(追加行)

np.vstack(

(a, b)

)np.concatenate(

(a, b)

, axis=

0)

data = np.genfromtxt(

"test.csv"

, delimiter=

",")

np.count_nonzero(data)

# 統計陣列中非零元素的個數

python3資料分析(2)陣列的簡單運算

陣列很重要,它能夠使你不用編寫迴圈語句就可以對資料執行批量操作!然而python的6大基礎資料型別中卻並沒有陣列型別!所以我們需要使用numpy來構建我們的陣列!不用迴圈語句,直接將資料處理成可以進行批量操作的過程叫做資料的向量化!然而程式設計師眼中陣列的概念也就是我們物理學上的向量,數學上的向量!...

Python之資料分析(寶可夢資料分析)

在此感謝阿里雲天池平台提供的學習平台,並提供相應的教程供小白們學習資料分析。seaborn庫 seaborn 是基於 python 且非常受歡迎的圖形視覺化庫,在 matplotlib 的基礎上,進行了更高階的封裝,使得作圖更加方便快捷。即便是沒有什麼基礎的人,也能通過極簡的 做出具有分析價值而又十...

python資料分析之Numpy

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