numpy

生成矩阵

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]]


'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值