天天看點

python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法

numpy介紹

  • numpy是一個python中做科學計算的基礎庫,重在數值計算,也是其他科學計算庫的基礎庫,多`用在于大型的,多元數組上執行數值運算

接下來介紹numpy的基礎用法

#建立數組
a=np.array([0,1,2,3,4,5,6,7,8,9])
b=np.array(range(10))
c=np.arange(10)
print(a)


#檢視數組類型
print(type(a))
print(b)
print(c)
print("**"*100)


#numpy中建立小數,并保留小數位
d=random.random()
print(d)
#保留三位小數
print(round(d,3))
#np.round也可以
print(np.round(d,3))
           

得到的結果如下

python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法

數組的計算

# 數組的形狀a.shape,
a=np.array([1,2,3,4,2,3,1,1,5,6,7,9])#一維數組 shape隻表示數組中的個數
b=np.array([[2,3,4,5,6,7,8],[3,4,5,6,7,8,9]])#二維數組 shape表示n行n列
print(a.shape)
print(b.shape)
print("*"*100)
#重塑形狀
a=a.reshape(3,4)
print(a)
c=np.arange(24).reshape(2,3,4)
print(c)
#數組的計算
print("數組的計算")
c=np.arange(24).reshape(2,3,4)
print(c/2)
print(c+2)
print(c*2)
#數組與數組的計算
print("數組與數組的計算")
t1=np.arange(24).reshape(4,6)
print(t1)
t2=np.arange(4).reshape(4,1)
print(t2)
print(t1-t2)

           
  • 要說明一下,對于二維的數組和數組的計算,如(4,6)和(4,1)他們也是可以進行加減法運算的,主要是在某一次元是相同的個數比如都是4行。在三維數組中,如(2,3,4)與二維數組(2,3),(3,4)都可以進行計算的,以此可以推廣到其他次元

以下是上述代碼的計算結果

python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法
python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法

numpy讀取檔案

import numpy as np
np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
           
python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法
  • 在找到csv檔案的路徑,用numpy讀取
import numpy as np
file_path="/home/python/Desktop/testdata/data1.csv"
t1=np.loadtxt(file_path,delimiter=",",dtype=int)
print(t1)
           
  • 得到的結果
    python科學計算之numpy學習數組的計算以下是上述代碼的計算結果numpy讀取檔案numpy索引和切片numpy中數值的修改這些就是numpy的基礎用法

numpy索引和切片

方法都寫在了注釋中

import numpy as np

file_path="/home/python/Desktop/testdata/data1.csv"
t1=np.loadtxt(file_path,delimiter=",",dtype=int)
print(t1)
print("*"*100)

#取行
print(t1[2])
#取連續多行
print(t1[2:5])
print(t1[2:])
#取不連續多行
print(t1[[2,3,5,7]])
print("*"*100)

#取列
print(t1[:,1])
#取連續多列
print(t1[:,1:])
#取不連續多列
print(t1[:,[2,3]])
print("*"*100)

#取第n行第m列的數
a=t1[1,3]
print(a)

#取多行多列(4到6行,2到4列)取的是交叉點位置
b=t1[1:5,1:3]
print(b)

#取多個不相鄰的點取的是(2,1)(3,3)這兩個點
c=t1[[2,3],[1,3]]
print(c)
           

numpy中數值的修改

import numpy as np


t=np.arange(24).reshape(4,6)

#把第3,4列都指派為0
t[:,2:4]=0

print(t)#把t中小于10都指派為3
t[t<10]=3

#把t中小于10都指派為0 ,大于10的指派維10
t=np.where(t<10,0,10)

#把t中小于10都指派為0 ,大于20的指派維20
t.clip(10,20)
           

這些就是numpy的基礎用法