㈠ python可以做什麼
用Python可以算n的階乘,下面是n的階乘的代碼(自帶格式)。
def factorial(n):
result = n
for i in range(1,n):
result *= i
return result
def main():
print factorial(4)
if __name__ == '__main__':
main()
階乘介紹:
基斯頓·卡曼(Christian Kramp,1760~1826)於 1808 年發明的運算符號,是數學術語。
一個正整數的階乘(factorial)是所有小於及等於該數的正整數的積,並且0的階乘為1。自然數n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。
亦即n!=1×2×3×...×(n-1)×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
㈡ numpy的矩陣乘法
你的問題是否可以轉化為對這個式子求導(x+1)/x*2 (x+1)除以x的平方
對分子求導:對存在x的項求導保留x項的倍數,常數求導為0 所以對分子求導結果為1
對分母求導:因為分母為x*2 所以導數為2x (若對x*n x的n次方求導,則為nx*(n-1) n倍的x的n-1次方)
㈢ python自帶及pandas、numpy數據結構(一)
1.python自帶數據結構:序列(如list)、映射(如字典)、集合(set)。
以下只介紹序列中的list:
創建list:
list1 = []
list1 = [1,2,3,4,5,6,7,8,9] #逗號隔開
list2 = [[1,2],[3,4],[5,6],[7,8]] #list2長度(len(list2))為2,list2[0] = [1,2]
liststring = list(「thisisalist」) #只用於創建字元串列表
索引list:
e = list1[0] #下標從零開始,用中括弧
分片list:
es = list1[0:3]
es = list1[0:9:2] #步長在第二個冒號後
list拼接(list1.append(obj)、加運算及乘運算):
list長度:
list每個元素乘一個數值:
list2 = numpy.dot(list2,2)
list類似矩陣相乘(每個元素對應相乘取和):
list3 = numpy.dot(list1,list1)
#要求相乘的兩個list長度相同
list3 = numpy.dot(list2,list22)
#要求numpy.shape(list2)和numpy.shape(list22)滿足「左行等於右列」的矩陣相乘條件,相乘結果numpy.shape(list3)滿足「左列右行」
2.numpy數據結構:
Array:
產生array:
data=np.array([[1, 9, 6], [2, 8, 5], [3, 7, 4]])
data=np.array(list1)
data1 = np.zeros(5) #data1.shape = (5,),5列
data1 = np.eye(5)
索引array:
datacut = data[0,2] #取第零行第二列,此處是6
切片array:
datacut = data[0:2,2] # array([6, 5])
array長度:
data.shape
data.size
np.shape(data)
np.size(data)
len(data)
array拼接:
#括弧內也有一個括弧(中括弧或者小括弧)!
d = np.concatenate((data,data))
d = np.concatenate((data,data),axis = 1) #對應行拼接
array加法:逐個相加
array乘法:
d = data data #逐個相乘
d = np.dot(data,data) #矩陣相乘
d = data 3 #每個元素乘3
d = np.dot(data,3) #每個元素乘3
array矩陣運算:
取逆 : np.linalg.inv(data)
轉置:data.T
所有元素求和 : np.sum(data)
生成隨機數:np.random.normal(loc=0, scale=10, size=None)
生成標准正態分布隨機數組:np.random.normal(size=(4,4))
生成二維隨機數組:
np.random.multivariate_normal([0,0],np.eye(2))
生成范圍在0到1之間的隨機矩陣(M,N):
np.random.randint(0,2,(M,N))
Matrix:
創建matrix:
mat1 = np.mat([[1, 2, 3], [4, 5, 6]])
mat1 = np.mat(list)
mat1 = np.mat(data)
matrix是二維的,所有+,-,*都是矩陣操作。
matrix索引和分列:
mat1[0:2,1]
matrix轉置:
np.transpose(mat1)
mat1.transpose()
matrix拼接:
np.concatenate([mat1,mat1])
np.concatenate([mat1,mat1],axis = 1)
numpy數據結構總結:對於numpy中的數據結構的操作方法基本相同:
創建:np.mat(list),np.array(list)
矩陣乘:np.dot(x,y)
轉置:x.T or np.transpose(x)
拼接:np.concatenate([x,y],axis = 1)
索引:mat[0:1,4],ary[0:1,4]
3.pandas數據結構:
Series:
創建series:
s = pd.Series([[1,2,3],[4,5,6]],index = [『a』,『b』])
索引series:
s1 = s[『b』]
拼接series:
pd.concat([s1,s1],axis = 1) #也可使用s.append(s)
DataFrame:
創建DaraFrame:
df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])
df取某一列:
dfc1 =df.x
dfc1 = df[『x』]
dfc2 = df.iloc[:,0] #用.iloc方括弧里是數字而不是column名!
dfc2 = df.iloc[:,0:3]
df取某一行:
dfr1 = df.iloc[0]
df1 = df.iloc[0:2]
df1 = df[0:2] #這種方法只能用於取一個區間
df取某個值:
dfc2 = df.iloc[0,0]
dfc2 = df.iloc[0:2,0:3]
㈣ Python-Numpy基礎
如果你已經裝有 Anaconda,那麼你可以使用以下命令通過終端或命令提示符安裝 NumPy:
conda install numpy
如果你沒有 Anaconda,那麼你可以使用以下命令從終端上安裝 NumPy:
pip install numpy
安裝好 NumPy 後,你就可以啟動 Jupyter notebook 開始學習了。接下來從 NumPy 數組開始
就好比一個矩陣
numpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組:
參數說明:
參數 描述
shape 數組形狀
dtype 數據類型,可選
order 有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。
舉例
輸出結果
創建指定大小的數組,數組元素以 0 來填充:
舉例
結果輸出
創建指定形狀的數組,數組元素以 1 來填充:
舉例
同樣是類型,但是注意這個和上邊的區別,一個是數組的形式,一個是矩陣的形式。
㈤ Python科學計算包numpy用法
本文實例講述了Python科學計算包numpy用法。分享給大家供大家參考,具體如下:
1 數據結構
numpy使用一種稱為ndarray的類戚亂似Matlab的矩陣式數據結構管理數據,比python的列表和標准庫的array類更為強大,處理數據更為方便。
1.1 數組的生成
在numpy中,生成數組需要指定數據類型,默認是int32,即整數,可以通過dtype參數來指定,一般用到的有int32、bool、float32、uint32、complex,分別代旦念表整數、布爾值、浮模仔困點型、無符號整數和復數
一般而言,生成數組的方法有這么幾種:
以list列表為參數生成(用tolist方法即可轉換回list):
?
1
234
5
In[
3
]: a
=
array([
1
,
2
,
3
])
In[
4
]: a
Out[
4
]: array([
1
,
2
,
3
])
In[
5
]: a.tolist()
Out[
5
]: [
1
,㈥ Numpy array數組的常見運算
Numpy是Python最流行的數學計算庫之一,它 支持多維數組與矩陣的各種運算。在Numpy庫中ndarray對象是其核心,它支持任意維度的數組(向量),所有的運算都是以array為基礎展開的。此外,在 Numpy的 矩陣mat是array的一個子集,也就是二維的數組。
下面我們來看一下array的基本運算。
NumPy數組在與數值進行運算時,具有廣播特性。也就是說,數組中的每個元素都會進行同樣的運算,這些運算包括「+、-、*、/、**、&、|、^」等。
例如:array([1,2,3,4,5])*2 相當於array([1*2,2*2,3*2,4*2,5*2]), 代碼示例如下。
對於維度相同的兩個數組,將按照元素逐項進行運算。以『*』為例:
已知
那麼:
代碼示例如下
對於維度不同的兩個數組,則會進行廣播運算, 例如
那麼
我們知道對於向量
那麼a與b的點積為:
在Numpy中,一維數組的點積(dot)和內積(inner)是相同的。但是對於多維數組來說,則有差別。inner運算中,可以將數組最後一個維度(行)視為向量,兩個數組的內積就是逐項對這些向量的內積。而dot運算則是前一個數組雨後一個數組轉置後的結果,即inner(a,b.T).
以上代碼在Python 3.7中運行通過。
㈦ python numpy.int64 是什麼類型
numpy.int64是numpy模塊的int類,與python本身的int基本類型並不同。使用type()判斷。
import numpy as np
nparr = np.array([1,2,3,4]) ;numpyint = nparr[0]
pyint = 1234
type(pyint) 不等於 type(numpyint)
㈧ 用 Python 可以來做什麼
Web 和 Internet開發;科學計算和統計;人工智慧;桌面界面開發;軟體開發;後端開發;網路介面:能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python標准庫的主要功能有:
1、文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合並、Unicode支持,二進制數據處理等功能
2、文件處理,包含文件操作、創建臨時文件、文件壓縮與歸檔、操作配置文件等功能
3、操作系統功能,包含線程與進程支持、IO復用、日期與時間處理、調用系統函數、寫日記(logging)等功能
4、網路通信,包含網路套接字,SSL加密通信、非同步網路通信等功能
5、網路協議,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網路協議,並提供了編寫網路伺服器的框架
6、W3C格式支持,包含HTML,SGML,XML的處理
7、其它功能,包括國際化支持、數學運算、HASH、Tkinter等