python資料分析 numpy入門

2021-10-01 22:01:32 字數 2292 閱讀 5817

import numpy as np

import random

# 建立陣列

t1 = np.array(

[random.randint(2, 9)

for i in range(10)])

t2 = np.arange(1, 6)

t3 = np.array(range(1, 10, 2))

print(

"t1:", t1)

print(

"t2:", t2)

print(

"t3:", t3)

print(type(t1))

print(t1.dtype)

# 指定資料的型別

t4 = np.array(range(1, 6), dtype=

"i1"

)print(

"*"*30)

print(t4.dtype)

print(t4)

# numpy 中的bool型別

t5 = np.array(

[1, 0, 1, 1, 1, 0, 2, 3], dtype=bool)

print(t5)

# numpy更改資料型別

t6 = t5.astype(

"int64"

)# 更改t5的資料型別

print(t6)

print(t6.dtype)

# numpy 中的小數

t7 = np.array(

[random.random(

)for i in range(10)])

print(

"=" * 100)

# 四捨五入

t8 = np.round(t7, 2)

# 將小數t7傳入,保留兩位小數

print(t8)

使用shape方法即可檢視陣列的形狀, shape方法返回的是乙個元組,一般來說,元組內有幾個數字,就可以判斷它是乙個幾維陣列

從shape中所返回的值中可以看出t1是乙個一維陣列,shape中返回的元組第乙個值為陣列的個數,t2為乙個二維陣列,shape中返回的元組第乙個值為陣列的行數,第二個值為陣列的列數

列如變數a = np.arange(15).reshape(3, 5)

a是乙個3行2列的二維陣列,那麼應該怎麼將它變為一維資料呢?

就拿剛才的變數a作為例子,陣列能夠進行計算嗎?那必須可以呀,不然還做什麼資料分析…(手動滑稽)

首先a是這樣的

首先進行乙個簡單的計算

可以看出當陣列加乙個數字時,陣列中的每乙個元素都加了這個數字,所以舉一反三,陣列也能夠對數字進行加減乘除,這裡就不做詳細講解了。

那麼問題來了, 陣列與陣列之間能夠計算嗎?

接下來構建乙個行數與a相同,列數不同的陣列c,並驗證它們是否能夠相加

然後將陣列c與陣列a進行相加

結果是陣列a與陣列c中的對應行數的值相加, 由此可以得出結論:乙個陣列可以與另乙個行數相同,但列數為1的陣列進行相加

最後構建乙個結構與列數都與a不相同的陣列d

a + d, 驗證是否能夠相加,執行結果如下:

報了乙個錯誤,報錯原因是因為: 操作與形狀不能一起被廣播,所以得出結論:當兩個陣列形狀與結構都不相同時,陣列之間不能進行計算

python資料分析之Numpy

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

Python 資料分析 Numpy模組

numpy模組可以高效的處理資料,提供陣列支援 很多模組都依賴他,比如 pandas scipy matplotlib 首先到 下查詢numpy mkl 我的python版本是3.6.1,系統是64位 使用如下命令安裝 pip install numpy 1.13.3 mkl cp36 cp36m ...

Python 資料分析 Numpy模組

numpy模組可以高效的處理資料,提供陣列支援 很多模組都依賴他,比如 pandas scipy matplotlib 首先到 下查詢numpy mkl 我的python版本是3.6.1,系統是64位 使用如下命令安裝 pip install numpy 1.13.3 mkl cp36 cp36m ...