numpy产生一个大于0的随机数_Python基础(四)--numpy包(基本函数)

9456fbcc08fa21ad9d16fb18be6d3ef6.png

Python的矩阵运算主要依赖numpy包,scipy包以numpy为基础,大大扩展了后者的运算能力。numpy包含两种基本的数据类型:数组矩阵

首先我们来看几个基本的函数:

1. zeros(): 可以用来构造全零矩阵

import numpy as np
a=np.zeros(3)
print(a)
>>>[ 0.  0.  0.]
a1=np.zeros((3,3))
print(a1)
>>>[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

2. ones(): 可以用来构造全1矩阵

import numpy as np
b=np.ones((3,3))
print(b)
>>>[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 1.  1.  1.]]

3. eye(): 可以用来构造单位矩阵

import numpy as np
c=np.eye((3))
print(c)
>>>[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]

4. random模块用于生成随机数,包含以下常用函数:

(1)numpy.random.random:生成一个[0,1)之间的随机浮点数或N维浮点数组

import numpy as np
print(np.random.random(3))
>>>[ 0.50010769  0.15948497  0.55937365]
print(np.random.random((3,3)))
>>>[[ 0.63889841  0.02418554  0.43296293]
 [ 0.69861965  0.29944022  0.87427738]
 [ 0.73962426  0.16554107  0.12540919]]

(2)numpy.random.randn:生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数

print(np.random.randn(3))
>>>[-1.30652514  1.26862292  0.60176302]
print(np.random.randn(3,3))
>>>[[ 0.44491667 -0.55012703  0.69292673]
 [-0.01358685  0.8027923   1.8637794 ]
 [ 0.06430576  0.12436816  0.25944719]]

(3)numpy.random.standard_normal(size=None):生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本

print(np.random.standard_normal(3))
print(np.random.standard_normal((3,3)))

(4)numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。

#生成一个[1,3]之间随机整数
print(np.random.random_integers(3))
#生成一个[3,6]之间随机整数
print(np.random.random_integers(3,6))
#生成一个元素个数为5的一维整数数组,数值介于[1,3]
print(np.random.random_integers(3,size=5))
>>>[3 3 3 2 3]
#生成一个2x3数组,取数范围:[1,3]随机整数
print(np.random.random_integers(3,size=(2,3)))
>>>[[3 1 3]
 [3 2 3]]
#生成一个2x3数组,取数范围:[2,6]随机整数
print(np.random.random_integers(2,6,(2,3)))
>>>[[5 6 6]                                            
 [4 5 4]]

(5) numpy.random.random_sample(size=None):生成一个[0,1)之间随机浮点数或N维浮点数组。

np.random.random_sample()#生成一个[0,1)之间随机浮点数
#size=2
print(np.random.random_sample(2))#生成size=2的一维数组
# size为整数元组
print(np.random.random_sample((2,))) #等同np.random.
# np.random.random_sample((,2))#报错
print(np.random.random_sample((2,3)))  #生成2x3数组
>>>[[ 0.42552357  0.50329469  0.56103096]
 [ 0.25368185  0.97693338  0.67921633]]
print(np.random.random_sample((3,2,2))) #3x2x2数组
>>>[[[ 0.10746936  0.13039599]
  [ 0.09554242  0.80825212]]
 [[ 0.23991246  0.79760361]
  [ 0.52653443  0.33626639]]
 [[ 0.63551107  0.10317109]
  [ 0.19795662  0.71114241]]]

(6)numpy.random.choice(a, size=None, replace=True, p=None):从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。

print(np.random.choice(2))#生成一个range(2)中的随机数
>>>1
#生成一个size=2一维数组,取数范围:range(2)
print(np.random.choice(2,2))
>>>[1 1]
#生成一个2x3数组,取数范围:range(5)
print(np.random.choice(5,(2,3)))
>>>[[3 3 0]
 [4 3 1]]
#生成一个np.array(['a','b','c','f']中随机元素
print(np.random.choice(np.array(['a','b','c','f'])))
>>>a
print(np.random.choice(np.array(['a','b','c','f']),(2,3)))#生成2x3数组
>>>[['b' 'f' 'f']
 ['a' 'c' 'f']]
#生成的始终是4,只有位置4上为true
np.random.choice(5,p=[0,0,0,0,1]) 
#生成shape=3的一维数组,元素取值为1或2的随机数,只有位置1,2上为true
np.random.choice(5,3,p=[0,0.5,0.5,0,0])
>>>[2 2 1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值