python資料分析 numpy核心包

2021-09-08 07:40:30 字數 3135 閱讀 2041

######建立array

import numpy as np

np.array([1,2,3])

np.array([0]*10)

a = np.zeros(10)

a.dtype

a = np.zeros(10,dtype = 'int')

a = np.ones(10)

a = np.empty(100)

a#包前不包後

np.arange(2,10,3)

np.arange(2,10,0.3)

#arange的第三個引數為步長,linspace的第三個引數為份數

#包錢包後

a = np.linspace(0,100,101)

a.size

#結果為101

x = np.linspace(-10,10,10000)

xy = x**2

import matplotlib.pyplot as plt

plt.plot(x,y)

plt.show()

#對角矩陣

np.eye(10)

#####array索引和切片

a = np.arange(10)

aa+1

a*33/a

b = np.arange(10,20)

b#大小一樣就可以做運算

a+ba5,a))

a = np.array(a)

aa[a>5]

a = np.arange(4)

a[[true,false,false,true]]

a = [random.randint(0,10) for i in range(20)]

aa = np.array(a)

ab = a[a>5]

b[b%2==0]

# & 位運算子

a[a>5 & a%2==0] #錯誤

a[(a>5) & (a%2==0)] #可以重寫&,但不能重寫and

a[(a>5) | (a%2==0)]

#########花式索引

a = np.arange(20)

a[[1,2,3,5]]

a = np.arange(20).reshape((4,5))

aa[0,2:4]

a[0,a[0]>2]

a[[1,3],[1,3]]

a[[1,3],[1,4]]

#先切行,再切列,

#先切第一行到第三行,列全切。列中行全切,在切第一列到第三列

a[[1,3],:][:,[1,3]]

############array通用函式

abs(-1)

a = np.arange(-5,5)

abs(a)

np.abs(a)

np.sqrt(a)

#exp---指數

#log---對數

a = 1.6

int(a) #1

round(a) #2 #四捨五入

a=-1.6

int(a) #-1

round(a) #-2

import math

#向上取整

math.ceil(1.6) #2

math.ceil(-1.6) #-1

#向下取整

math.floor(-1.6) #-2

a = np.arange(-5.5,5.5)

np.floor(a)

np.ceil(a)

np.round(a)

#向0取證

np.trunc(a)

np.rint(a) #與round相同

np.modf(a) #整數與小數分開

x,y = np.modf(a)xy

a = np.arange(0,5)

5/a#nan:不等於任何浮點數,甚至 nan != nan

#inf:比任何浮點數都大

float('3.5')

float('nan')

float('inf')

np.nan == np.nan

np.isnan(5/a)

a[~(np.isnan(a))]

float('inf') > 100000000000 #比任何數都大

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

b = np.array([1,0,3,0,5])

c = a/b

np.inf == np.inf

c[c!=np.inf]

c[~np.isinf(c)]

b=np.array([3,0,5,0,7])

anp.maximum(a,b)

np.minimum(a,b)

###############統計方法和隨機數生成

#方差:表示整數資料的離散程度,方差越小,離散程度越小

#標準差:方差開根號,

a = np.arange(0,10,0.2)

a.mean()

a.std()

a.var()

#可以根據均值加減標準差來估計整個資料的範圍

a.mean()+a.std()

a.mean()-a.std()

a.argmax()

a.argmin()

import random

random.random()

random.random(0,10)

random.choice([1,2,3,4,5])

a=[1,2,3,4,5]

random.shuffle(a)

anp.random.randint(10) #0-1的10個數

np.random.randint(0,10,10) #產生0-10的10個數

np.random.randint(0,10,(3,5)) #產生三行五列的二維陣列

np.random.choice([1,2,3,4,5])

np.random.choice([1,2,3,4,5],10)

random.uniform(2.0,4.0) #平均分布

np.random.uniform(2.0,4.0,10)

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入門

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 ...