# 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 功能 返回數字或陣列的絕對值。若輸入為陣列,則將陣列各元素取絕對值,然後返回取絕對值後的陣列 ...