python資料分析之Numpy

2021-08-08 02:18:52 字數 4017 閱讀 1495

numpy系統是python的一種開源的數值計算擴充套件

ndarray 多維陣列
* 所有元素必須是相同型別
* ndim屬性,維度個數
* shape屬性,各維度大小
* dtype屬性,資料型別​# coding:utf-8

import numpy as np

# 生成指定維度的隨機多維資料

data = np.random.rand(2, 3)

print(data)

print(type(data))

ndim, shape 和 dtype 屬性

print('維度個數', data.ndim)

print('各維度大小: ', data.shape)

print('資料型別: ', data.dtype)

建立ndarray

# list轉換為 ndarray

l = range(10)

data = np.array(l)

print(data)

print(data.shape)

print(data.ndim)

# 巢狀序列轉換為ndarray

l2 = [range(10), range(10)]

data = np.array(l2)

print(data)

print(data.shape)

print(data.ndim)

# np.zeros, np.ones 和 np.empty

# np.zeros

zeros_arr = np.zeros((3, 4))

# np.ones

ones_arr = np.ones((2, 3))

# np.empty

empty_arr = np.empty((3, 3))

# np.empty 指定資料型別

empty_int_arr = np.empty((3, 3), int)

print(zeros_arr)

print('-------------')

print(ones_arr)

print('-------------')

print(empty_arr)

print('-------------')

print(empty_int_arr)

# np.arange()

print(np.arange(10))

ndarray資料型別

zeros_float_arr = np.zeros((3, 4), dtype=np.float64)

print(zeros_float_arr)

print(zeros_float_arr.dtype)

# astype轉換資料型別

zeros_int_arr = zeros_float_arr.astype(np.int32)

print(zeros_int_arr)

print(zeros_int_arr.dtype)

向量化 (vectorization)

# 向量與向量運算

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

[4, 5, 6]])

print("元素相乘:")

print(arr ** 3)

print("矩陣相加:")

print(arr + arr)

# 向量與標量運算

print(1. / arr)

print(2. * arr)

索引與切片

# 一維陣列

arr1 = np.arange(10)

print(arr1)

print(arr1[2:5])

# 多維陣列

arr2 = np.arange(12).reshape(3,4)

print(arr2)

print(arr2[2,1])

print(arr2[0:2, 2:])

print(arr2[:, 1:3])

# 條件索引

# 找出 data_arr 中 2023年後的資料

data_arr = np.random.rand(3,3)

print(data_arr)

year_arr = np.array([[2000, 2001, 2000],

[2005, 2002, 2009],

[2001, 2003, 2010]])

is_year_after_2005 = year_arr >= 2005

print is_year_after_2005

print is_year_after_2005.dtype

filtered_arr = year_arr[is_year_after_2005]

print filtered_arr

filtered_arr = year_arr[year_arr >= 2005]

print(filtered_arr)

# 多個條件

filtered_arr = year_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]

print(filtered_arr)

filtered_arr = year_arr[(year_arr <= 2005) | (year_arr % 2 == 0)]

print(filtered_arr)

filtered_arr = year_arr[(year_arr <= 2005) & (year_arr % 2 == 0) & (year_arr > 2000)]

print(filtered_arr)

轉置arr = np.random.rand(2,3)

print(arr)

print(arr.transpose())

arr3d = np.random.rand(2,3,4)

print(arr3d)

print('----------------------')

print(arr3d.transpose((1,0,2))) # 3x2x4

通用函式

arr = np.random.randn(2,3)

print(arr)

# 向上取整

print(np.ceil(arr))

# 向下取整

print(np.floor(arr))

# 四捨五入

print(np.rint(arr))

# 判斷是否為nan

print(np.isnan(arr))

# 元素相乘

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

a2 = np.array([[4,6,3], [4,2,7]])

print(np.multiply(a1, a2))

# 元素相除

print(np.divide(a1, a2))

print(np.divide(a1*1.0, a2*1.0))

#np.where

arr = np.random.randn(3,4)

print(arr)

# 格式 where(條件,成立,不成立)

print(np.where(arr > 0, 1, -1))

常用的統計方法

# np.all 和 np.any

arr = np.random.randn(2,3)

print(arr)

# 至少有乙個元素滿足條件

print(np.any(arr > 0))

# 全部滿足條件

print(np.all(arr > 0))

# np.unique

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

print(arr)

# 找出陣列中的唯一值並返回已排序的結果

print(np.unique(arr))

利用python進行資料分析 02 numpy基礎

ndarray 多維陣列物件 ndarray是乙個通用的同構資料多維容器,每個陣列均有乙個shape 表示維度大小 和dtype 說明陣列資料型別的物件 eg data.shape 2,3 data.dtype dtype float64 1 建立ndarray data1建立arr1的ndarra...

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

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

Python 資料分析之scipy

scipy是一組專門解決科學計算中各種標準問題域的包的集合,主要包括下面這些包 匯入積分模組 import numpy as np 匯入numpy庫 from scipy import integrate 匯入定積分模組scipy.integrate.quad func,a,b 計算單重積分,引數分...