數據分析基礎之numpy

一、基本概念

1、什麼是Numpy
一個在Python中做科學計算的基礎庫,重在數值計算,也是大部分PYTHON科學計算庫的基礎庫,多用於在大型、多維數組上執行數值運算

二、數組的創建和改變維數

1、numpy創建數組(矩陣)

import numpy as np
# 三種創建數據的方法,數組的類名爲ndarray,數據的類型爲int32
t1 = np.array([1, 2, 3])
print(t1)
print(type(t1))

t2 = np.array(range(10))
print(t2)
print(type(t2))

t3 = np.arange(4, 10, 2)
print(t3)
print(type(t3))
print(t3.dtype)

E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[1 2 3]
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
<class 'numpy.ndarray'>
[4 6 8]
<class 'numpy.ndarray'>
int32

在這裏插入圖片描述
指定創建數組的數據類型

import numpy as np
t4 = np.array(range(1, 4), dtype=float32)
print(t4)
print(t4.dtype)
----------------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[1. 2. 3.]
float32

Process finished with exit code 0
import numpy as np
t5 = np.array([1,0,0,1,1,0],dtype=bool)
print(t5)
print(t5.dtype)
---------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[ True False False  True  True False]
bool

修改數組的數據類型:

t5 = np.array([1,0,0,1,1,0],dtype=bool)
print(t5)
print(t5.dtype)
t6 = t5.astype("int8")
print(t6)
print(t6.dtype)
--------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[ True False False  True  True False]
bool
[1 0 0 1 1 0]
int8

取小數並保留兩位

t7 = np.array([random.random() for i in range(10)])
print(t7)
print(t7.dtype)

t8 = np.round(t7, 2)
print(t8)
-------------------------------------------------------------------------
E:\python3\python.exe H:/PythonProject/DataAnalyse/numpy_course/new_arry.py
[0.04811729 0.1599298  0.37288476 0.01717569 0.44839734 0.65061334
 0.33807003 0.60770559 0.6994518  0.35313622]
float64
[0.05 0.16 0.37 0.02 0.45 0.65 0.34 0.61 0.7  0.35]

數組的形狀:
在這裏插入圖片描述
修改數組的形狀:reshape()接收的參數是一個元組
調用reshape()方法不會對數組本身進行修改
在這裏插入圖片描述
使用新的參數取接受reshape()的返回值
在這裏插入圖片描述
把數組轉化爲1維數據
在這裏插入圖片描述
當不知道數組的個數進行降維時
在這裏插入圖片描述
shape[0]*shape[1]代表總共個數
另一個簡單方法, 按照行進行展開:
在這裏插入圖片描述

三、數組的計算

1、數組和數的計算
給數組加一個數即給每一個元素都加上一個數字,分別進行計算。
這是一個Numpy的廣播機制造成的,在運算過程中,加減乘輸的值被廣播到所有的元素上面。
在這裏插入圖片描述
2、數組和數組的計算
在這裏插入圖片描述
在這裏插入圖片描述
不同維度的計算
在這裏插入圖片描述
在這裏插入圖片描述
滿足後緣維度的軸長相符的例子
在這裏插入圖片描述
長度爲1的例子:
在這裏插入圖片描述
shape爲(2,3,4)和(2,4)
在這裏插入圖片描述

軸(axis):在numpy中可以理解爲方向,使用0,1,2…數字表示,對於一個一維數組,只有一個0軸,對於2維數組(shape(2,2)),有0軸和1軸,對於三維數組(shape(2,2, 3)),有0,1,2軸
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

四、numpy讀取數據

在這裏插入圖片描述

np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)

在這裏插入圖片描述
現在這裏有一個英國和美國各自youtube1000多個視頻的點擊,喜歡,不喜歡,評論數量([“views”,“likes”,“dislikes”,“comment_total”])的csv,運用剛剛所學習的只是,我們嘗試來對其進行操作

import numpy as np

us_file_path = "US_video_data_numbers.csv"
uk_file_path = "GB_video_data_numbers.csv"

t1 = np.loadtxt(us_file_path,dtype=int,delimiter=",")
t2 = np.loadtxt(uk_file_path,dtype=int,delimiter=",")

print(t1)
print('*'*50+'分割線'+'*'*50)
print(t2)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
轉置矩陣的三種方法
在這裏插入圖片描述

五、numpy索引和切片

取數組中的某一行

import numpy as np
us_file_path = "US_video_data_numbers.csv"
t2 = np.loadtxt(us_file_path,dtype=int,delimiter=",")

print(t2) 
print('*'*50+'分割線'+'*'*50)
# 取某一行
print(t2[2]) # 或者print(t2[2, ])

在這裏插入圖片描述
取連續的多行

print(t2[2:])  
#或者 print(t2[2:, :]) 逗號後面的冒號表示全部列都取到

在這裏插入圖片描述
取不連續的多行
變爲二維數組且不連續就要再加一箇中括號

print(t2[[1,4,7]])
#print(t2[[1,4,7],:])

在這裏插入圖片描述
取列

# 取某列
print(t2[:, 0])
# 取連續的多列
print(t2[:, 2:])
# 取不連續的多列
print(t2[:,[1,3]])

在這裏插入圖片描述

取第三行,第四列的值

print(t2[2,3])

取多行和多列,取第3行到第5行,第二列到第四列的結果:

print(t2[2:5,1:4])

在這裏插入圖片描述
取一些不相鄰的點

print(t2[[0,2,2],[0,1,3]])

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章