numpy學習筆記——隨機數與存儲讀取

隨機數

numpy.random包含多種概率分佈的隨機樣本

  • rand
    random.rand [0,1]之間的隨機浮點數 平均分佈
  • normal
    np.random.normal(loc=0.0, scale=1.0, size=None) 正態分佈隨機數,loc是均值,scale是方差。
  • randint
    numpy.random.randint(low, high=None, size=None, dtype=‘l’)
    生成一個整數或N維整數數組
    若high不爲None時,取[low,high)之間隨機整數,否則取值[0,low)之間隨機整數,且high必須大於low
#random.rand [0,1]之間的隨機浮點數 平均分佈
print('np.random.rand()')
print('np.random.rand()\n',np.random.rand())

print('np.random.rand(2,3)\n',np.random.rand(2,3))

print('np.random.rand(2,3)*10\n',np.random.rand(2,3)*10)#0-10之間的浮點數

#random.normal 正態分佈
print('np.random.normal(size=(4,4))\n',np.random.normal(size=(4,4)))#normal 正態分佈
print(np.random.normal(2,0.5,10))#loc=0,scale=0.5 指定參數的正態分佈

#random.randint
# numpy.random.randint(low, high=None, size=None, dtype='l'):生成一個整數或N維整數數組
# 若high不爲None時,取[low,high)之間隨機整數,否則取值[0,low)之間隨機整數,且high必須大於low 
# dtype參數:只能是int類型  
print(np.random.randint(10))#[0,10)之間的整數隨機數
print(np.random.randint(1,3))#[1,3)之間的整數
print(np.random.randint(1,5,size=(2,6)))#size是生成數組的尺寸

存儲和讀取

存儲、讀取.npy可以使用save load語句
np.save(‘ar.npy’,ar)
np.load(‘ar.npy’)

存儲、讀取txt格式可以用savetxt loadtxt格式

  • np.savetxt
    np.savetxt(fname, X, fmt=’%.18e’, delimiter=’ ‘, newline=’\n’, header=’’, footer=’’, comments=’# ‘, encoding=None)
    fname: ndarray
    fmt:存儲格式 如保留小數點位數和數據類型
    delimiter:數據分隔格式,如delimiter=’ ,'是用逗號間隔
  • np.loadtxt
    np.loadtxt(fname, dtype=<class ‘float’>, comments=’#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=‘bytes’, max_rows=None)
    讀取txt文件
import os
import numpy as np

os.chdir('C:\\Users\\Violette\\Desktop')
ar=np.random.randint(1,10,size=(3,3))
print(ar)
#save : Save an array to a binary file in NumPy ``.npy`` format
#savez : Save several arrays into an uncompressed ``.npz`` archive
#savez_compressed : Save several arrays into a compressed ``.npz`` archive
np.save('ar.npy',ar)
ar1=np.load('ar.npy')
print(ar1)
ar=np.random.rand(3,3)
print(ar)
np.savetxt('ar.txt',ar,delimiter=',',fmt='%.3f')#逗號間隔,保留三位小數的浮點數
ar2=np.loadtxt('ar.txt',delimiter=',')
print(ar2)
print(np.loadtxt('ar.txt',delimiter=',',skiprows=2))#skiprows表示跳過前幾行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章