# -*- coding:utf-8 -*-
"""@author: fane
@file: numpytest.py
@time:2017/8/9 21:15
"""import numpy as np
defmain
():#numpy的基本使用
lst=[[1,3,5],[2,4,6]]
print(type(lst))
np_lst=np.array(lst) #
print (type(np_lst)) #
np_lst=np.array(lst,dtype=np.float)
print (np_lst.shape) #(2, 3)
print (np_lst.ndim) #2 維數
print (np_lst.dtype) #float64
print (np_lst.itemsize) #8 64位占用8個位元組
print (np_lst.size) #6 元素個數
#常用固定陣列
print ("常用固定陣列")
print (np.zeros([2,4])) #元素為0的2行4列陣列
print (np.ones([3,5])) #元素為1的3行5列陣列
#隨機數
print("random:")
print (np.random.rand(2,4)) #2行4列的隨機數組(元素0-1之間)
print (np.random.randn(2,4))#2行4列的標準正態分佈的隨機數組
print (np.random.rand()) #列印乙個隨機數
print ("randint:")
print (np.random.randint(1,10,3))#列印3個1到10之間的隨機數
#輸出選定數字中 的乙個隨機數
print (np.random.choice([10,20,30,2,6]))
#輸出呈beta分布的1-10之間的100個數
print (np.random.beta(1,10,100))
#numpy的陣列操作
#[ 1 2 3 4 5 6 7 8 9 10] 輸出1到10的一維陣列
print (np.arange(1,11))
#[[ 1 2 3 4 5] 以下兩句都是把1-10分成2行5列的二維陣列
# [ 6 7 8 9 10]] -1就是自動分為2行,列數自動填充
print (np.arange(1,11).reshape([2,5]))
print (np.arange(1, 11).reshape([2, -1]))
list=np.arange(1,11).reshape([2,-1])
print ("exp:")
print(np.exp(list)) #自然指數
print(np.exp2(list)) #自然指數的平方
print(np.sqrt(list)) #開方
print(np.sin(list)) #三角函式
print(np.log(list)) #取對數
list2=np.array([[[1,2,3,4],[4,5,6,7]],
[[7,8,9,10],[10,11,12,13]],
[[14,15,16,17],[18,19,20,21]]])
#list2為3個2維陣列的集合陣列
#axis表示計算的深入維度,axis的值越大越深入細化
print (list2.sum(axis=0))
#輸出結果為[[1+7+14,2+8+15,3+9+16,...[,,]]以此類推的兩行四列的陣列
print (list2.sum(axis=1)) #輸出結果為[[1+4,2+5,3+6,4+7],[7+10]...[,,]] 以此類推的三行四列的陣列
print (list2.sum(axis=2))
#輸出結果為[[1+2+3+4,4+5+6+7],[7+8+9+10,10+11+12+13],[,]] 以此類推的三行兩列的陣列
print ("max and min")
print (list2.max(axis=2))
print (list2.min(axis=0))
ls1 = np.array([4,20,30,40])
ls2 = np.array([10,3,2,1])
print (ls1+ls2) #可以對陣列做加減乘除,平方等等
print (ls1-ls2)
print (ls1**2) #平方
#陣列點乘
print(np.dot(ls1.reshape(2,2),ls2.reshape(2,2)))
#先轉化為2x2的兩個陣列,然後dot點乘
print ("陣列的拆分合併:")
print (np.concatenate((ls1,ls2),axis=0))
#合併為一維陣列
print (np.vstack((ls1,ls2))) #合併為二維陣列
print (np.hstack((ls1,ls2))) #合併為一維陣列
print (np.split(ls1,2)) #把ls1分成等長的兩個陣列
print (np.copy(ls1)) #陣列拷貝
#陣列的矩陣與線性方程
from numpy.linalg import * #引入包
print (np.eye(3)) #三階單位矩陣
lst = np.array([[1,2],[3,4]])
print (inv(lst)) #逆矩陣
print (lst.transpose()) #轉置矩陣
print (det(lst)) #行列式
print (eig(lst)) #特徵值與特徵向量
y= np.array([[5.],[7.]])
print (solve(lst,y))
#求解lst和y組成的方程組 x+2y=5 3x+4y=7 得出結果x=-3,y=4
#numpy 的其他應用
print (np.fft.fft(np.array([1,1,1,1,1,1,1,1,])))
#fft訊號處理
print(np.corrcoef([1,0,1],[0,2,1])) #吉爾遜相關係數
#生成一元多次函式2x+x+3
if __name__=="__main__":
main()
利用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資料分析之Numpy
numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...