生成矩阵
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
'''
object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
dtype 数组的所需数据类型,可选。
copy 可选,默认为true,对象是否被复制。
order C(按行)、F(按列)或A(任意,默认)。
subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
ndmin 指定返回数组的最小维数。
'''
import numpy as np
#使用numpy构建矩阵,传入一个列表或元组
arr1=np.array([1,3,5,7,9],dtype=np.float)
arr2=np.array((10,20,30,40))
print(arr1)
print(arr1.shape)
print(arr2)
print(arr2.shape)
'''
[1. 3. 5. 7. 9.]
(5,)
[10 20 30 40]
(4,)
'''
#arr3与arr4的差别在于,arr3每行的大小不一样
#如果是在tf中,建议tf.ragged.constant()
arr3=np.array([[1,3,5,7,9],[10,20,30,40],[100,200,300]])
arr4=np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(arr3)
print(arr3.shape)
print(arr4)
print(arr4.shape)
'''
[list([1, 3, 5, 7, 9]) list([10, 20, 30, 40]) list([100, 200, 300])]
(3,)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
(3, 4)
'''
#元组也能浪起来
arr5=np.array([(1,3,5,7,9),(0,20,30,40,50)])
arr6=np.array([(1,3,5,7,9),(0,20,30,40)])
print(arr5)
print(arr5.shape)
print(arr6)
print(arr6.shape)
'''
[[ 1 3 5 7 9]
[ 0 20 30 40 50]]
(2, 5)
[(1, 3, 5, 7, 9) (0, 20, 30, 40)]
(2,)
'''
切片
print(arr5[:,[0,1,3]])
#第几个元素
print(arr5[[0,1],[1,2]])
#由元素构成的矩阵
print(arr5[np.ix_([0,1],[1,2])])
'''
[[ 1 3 7]
[ 0 20 40]]
[ 3 30]
[[ 3 5]
[20 30]]
'''
np.arange
print(np.arange(0,10))
'''
[0 1 2 3 4 5 6 7 8 9]
'''
print(np.arange(1,10).reshape((3,3)))
print(np.arange(1,5).reshape((1,-1)))#行
print(np.arange(1,5).reshape((-1,1)))#列
'''
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 4]]
[[1]
[2]
[3]
[4]]
'''
等差数列
print(np.linspace(1, 10, 20))
'''
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684 3.36842105
3.84210526 4.31578947 4.78947368 5.26315789 5.73684211 6.21052632
6.68421053 7.15789474 7.63157895 8.10526316 8.57894737 9.05263158
9.52631579 10. ]
'''
#生成从0到10,4*4矩阵
print(np.random.randint(0, 10, size=(4, 4)))
#生成10个数
print(np.random.rand(10))
'''
[[1 7 2 6]
[8 3 8 2]
[3 2 4 6]
[5 2 8 4]]
[0.4654148 0.57665219 0.44357381 0.95419579 0.12186634 0.13961711
0.69530307 0.65647153 0.13192981 0.10015519]
'''
常用函数
# 常用函数
# 取绝对值
np.abs(x)
np.fabs(x)
# 平方根
np.sqrt(x)
# 平方
np.square(x)
# 指数
np.exp(x)
# 对数
#以2为底
np.log2(x)
#以10为底
np.log10
#以e为底
np.log(x)
# 符号函数(大于0的数返回1、小于0的数返回-1、0返回0值)
np.sign(x)
# 幂运算
np.power
# 余数
np.mod
#计算数组各元素的指数值
np.exp(x)
# 向上 下取整
np.cell# 向上取整
np.floor# 向下取整
# 返回最近的整数
np.rint(x)
# 判断是否缺失
np.isnan(x)
# 最大值
np.max(x)
# 浮点型的最大值
np.fmax(x)
# 最小值
np.mim(x)
# 浮点型的最小值
np.fmin(x)
# 求和
np.sum(x)
# 均值
np.mean(x)
# 标准差
np.std(x)
# 方差
np.var(x)
# 中位数
np.median(x)
生成随机数
print(np.random.randint(0, 10, size=(4, 4)))
print(np.random.rand(10))
'''
[[1 7 2 6]
[8 3 8 2]
[3 2 4 6]
[5 2 8 4]]
[0.4654148 0.57665219 0.44357381 0.95419579 0.12186634 0.13961711
0.69530307 0.65647153 0.13192981 0.10015519]
'''
各种分布
#各种分布
#每次有几个数字一样
np.random.seed(2)
#二项分布
arr7=np.random.binomial(n=20,p=0.3,size=20)
arr8=np.random.binomial(n=20,p=0.3,size=(4,5))
print(arr7)
print(arr8)
'''
[6 2 6 6 6 5 4 7 5 5 7 6 4 6 4 8 8 6 8 3]
[[6 3 6 3 4]
[6 4 3 4 5]
[6 4 7 6 6]
[5 8 6 4 7]]
'''
#泊松分布
arr9=np.random.poisson(lam=6,size=20)
arr10=np.random.poisson(lam=(10,15,20),size=(4,3))
print(arr9)
print(arr10)
'''
[ 5 6 5 6 7 5 6 4 7 7 8 9 5 6 7 5 5 12 9 5]
[[ 8 12 19]
[ 9 11 19]
[ 8 14 16]
[11 19 16]]
'''
#正态分布
#loc:均值,scale:方差
arr11=np.random.normal(loc=5,scale=6,size=10)
arr12=np.random.normal(loc=5,scale=6,size=(2,5))
print(arr11)
print(arr12)
'''
[ 8.46145831 9.30683417 -0.63399399 8.77265484 1.61303941 -7.52684477
3.70969921 -1.45017138 2.9721671 7.05927639]
[[18.69523784 2.02532691 4.01622301 7.22973297 6.11912912]
[ 4.04942465 -1.49757734 -0.73975312 3.89973959 -1.95884138]]
'''
#自由度为2的t分布
arr13=np.random.standard_t(df=2,size=(2,3))
#自由度为2和5的f分布
arr14=np.random.f(dfnum=2,dfden=5,size=(2,3))
#随机采样,左闭右开
arr15=np.random.uniform(size=(4,5),low=1,high=10)
print(arr13)
print(arr14)
print(arr15)
'''
[[-1.17011576 -0.5228239 -0.37502457]
[-0.79665704 8.97424495 -0.99226121]]
[[7.24082787 9.49733597 0.44492858]
[2.96740858 6.34091175 0.10217476]]
[[5.95490897 2.75364331 8.15498363 1.986514 5.23643246]
[3.62004507 1.94850878 8.69988682 2.80176709 5.22341005]
[6.51483034 3.42650985 5.31697274 5.77421969 5.00335184]
[4.26842788 3.30419275 9.1555604 5.58532092 7.31207748]]
'''
18万+

被折叠的 条评论
为什么被折叠?



