Numpy 基本用法

2021-08-28 07:32:02 字數 3881 閱讀 7535

# encoding=utf-8

import numpy as np

x =

#歐幾里得距離

def distance_betwin_p(p1,p2):

np.sqrt((p1[0] - p2[0]) * (p1[0] - p2[0]) + (p1[1] - p2[1]) ** 2)

#建立乙個指定行列的陣列,預設值是0或者正無窮或負無窮 ∞

np.empty((3,4))

#科學計數法的讀法

1.23e3  #1.23x10的三次方

1.23e-3 #1.23x10負三次方

#實數在計算機裡沒有對應表示,只能用浮點數無限逼近。所以在處理和0比較的時候要格外小心

#a - b < 0.1e-10 例如相減的時候當結果小於乙個極小的數值就認為相等

#向量是有方向和長度的變數,可以用numpy的多維陣列來表示,二維向量就是平面的乙個點

#計算向量x的範數(長度)

np.linalg.norm(x)

#計算向量的角度

d = np.arctan(3.0/3.0)

#將弧度轉化為角度

np.rad2deg(d) #np.deg2rad()將角度轉化為弧度

#向b1方向移動,再向b2方向移動

b1 = np.array([3,0])

b2 = np.array([0,3])

np.linalg.norm(b1 + b2)

#使用兩個向量相減,可以計算兩點之間的距離

d1 = np.array([2,7])

d2 = np.array([8,3])

np.linalg.norm(d1 - d2)

#余弦相似度,向量的內積,對應元素想乘,再相加

costheta = d1.dot(d2)/(np.linalg.norm(d1) * np.linalg.norm(d2))

#numpy陣列(向量)預設的+ - x /操作都是對應位置的元素相操作

#-3x**2+5x-6

#typeerror: unsupported operand type(s) for -: 'list' and 'list'

#在x軸上生成20000個從-10000到10000的離散點

#使用向量計算直接生成多項式-3x**2+5x-6的所有計算結果,注意這裡沒有使用迴圈,一次計算了20000個結果

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

y = (x ** 2) * -3 + 5 * x - 6 #向量運算,計算機會加速此類運算

y.max()#獲取當前向量中的最大值

y.argmax()#獲取當前陣列最大值對應的索引

np.nan #not a number 當資料讀取缺失或計算異常時會出現,本質是乙個浮點數

np.inf #無窮大

np.exp(10)#以e為底的指數

np.log(10)#對數

np.sin(10)#三角函式

np.sqrt(10)#開方

x.astype(np.int)#將陣列型別強制轉換為int

x.shape #返回x陣列的行列數

n_array = np.array([[1,2,3,4,5],[6,7,8,9,0],[3,4,5,6,7],[7,6,5,4,3],[6,8,9,2,3]])

n_array < 60 #返回滿足條件的布林型別矩陣

n_array[n_array < 60]#將a_array中小於60的數值選擇出來

n_array.mean() #求平均值

n_array.std() #標準差

n_array.max() #最大值

n_array.min() #最小值

#n_array[:,1] #選擇當前二維陣列第二列

#n_array[1,:] #選擇當前二維陣列第二行

#n_array[:,:,1] #選擇當前三維陣列第三個維度第二列的所有內容

# def poly_test(l,r,):

#     r_len = r - l

#     max_num = -1000000

#     m_idx = l

#     for i in range(r_len):

#         r_num = l+i

#         result = (r_num ** 2) * -3 + (5* r_num) - 6

#         if result > max_num:

#             max_num = result

#             m_idx = i

##     return max_num,m_idx

## print poly_test(-10000,10000)

my_matrix = np.loadtxt(open("score.csv","rb"),delimiter=",")

#my_matrix = np.genfromtxt("score.csv",delimiter=",")

#該班級哪門課程成績最好

#該班哪個同學成績最好

#該班哪個同學偏科最嚴重

#該班哪門主課成績最好

#該班主課和副課對比哪個成績好

#這個班有多少學生出現了不及格

name_dic =

class coursadesc(object):

def __init__(self):

self.name = ""

self.std  = 0

self.max  = 0

self.mean = 0

self.min  = 0

self.sum  = 0

class computerdesc(object):

def __init__(self,n_array):

self.score_array = n_array

self.result =

std_array = np.array(std_list)

sum_array = np.array(sum_list)

#總和最大的單項成績,例如:數學成績的max_sum_coursa也就是總和是701

max_sum_coursa = sum_array.max()

max_sum_index = sum_array.argmax()#數學成績總和的索引,例如是0

#方差最小的單項成績,例如:體育成績的min_std_coursa也就是方差是30

min_std_coursa = std_array.min()

min_std_index  = std_array.argmin()#方差最小成績的索引,例如是6

if max_sum_index == min_std_index:

return name_dic[max_sum_index]

else:

#總和最大課程的方差取出

max_sum_coursa_std = std_array[max_sum_index]

#方差最小課程的總和取出

min_std_soursa_sum = sum_array[min_std_index]

sum_delta = max_sum_coursa - min_std_soursa_sum

std_delta = max_sum_coursa_std - min_std_coursa

sum_percent = sum_delta / max_sum_coursa

std_percent = std_delta / min_std_coursa

if sum_percent < 0.05 and std_percent > 0.2:

return name_dic[min_std_index]

Numpy基本用法

利用python進行資料分析 筆記 ndarray是n維陣列物件,快速而靈活的大資料集容器 其中所有元素的資料型別必須是相同的 ndarray包括shape屬性 各維度大小的元組 和dtype屬性 陣列資料型別 ndarray建立函式 特點array 支援列表,元組,陣列或其他序列型別,可推斷也可指...

Numpy基本用法 ndarray的資料型別

print 生成指定元素型別的陣列 設定dtype屬性 x numpy.array 1,2.6,3 dtype numpy.int64 print x 元素型別為int64 print x.dtype x numpy.array 1,2,3 dtype numpy.float64 print x 元...

numpy用法總結

python的乙個開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比python自身的巢狀列表 nested list structure 結構要高效的多 該結構也可以用來表示矩陣 matrix 功能 返回數字或陣列的絕對值。若輸入為陣列,則將陣列各元素取絕對值,然後返回取絕對值後的陣列 ...