Python中numpy的应用

#创建ndarray
import numpy as np
nd = np.array([2,4,6,'11'])#numpy中默认ndarray的所有元素的数据类型是相同,如果数据的类型不同,会统一为统一类型,优先级为str>float>int
nd   # array(['2', '4', '6', '11'], dtype='<U11')



# 使用np创建routines函数创建
# (1)np.one(shape,dtype=None,order='C')创建数组
# 根据所给的形状和类型返回一个元素全部为1的数组。默认numpy.float64类型
# 参数:
# shape:定义返回元祖的形状,传入int或者ints元祖,如果传入int,返一维数组
#         如果传入ints元祖,返回多维数组
# dtype:定义的数据类型,可选参数,默认numpy.float64.例如:numpy.int8
# order:可选,返回多维数组时,内存的排列方式
np.ones(shape=(5,4))  # 返回一个5行4列的数组,元素的内容都为1
ones = np.ones(shape=(3,2,3), dtype=int)  # 返回3个两行三列都为1的数组

# (2)np.zeros(shape,dtype=float,order='c')
# 返回根据给定的形状和类型全部为0的数组
np.zeros(shape=(5,4))  # 返回一个5行4列都为0的数组

# (3)np.full(shape,fill_value,dtype=None,order='c')
# 根据给定的形状和所填充的值,返回一个新的数组
np.full(shape=(6,5,2), 1)  # shape可以理解为6个5行2列的数组,并且都是使用1填充。

# (4)np.eye(N,M=None,k=0,dtype=float)
# 返回一个对角线为1,其他位置为0的数组(可以理解为单位矩阵)
# 参数:
# N:返回数组的行数
# M:可选,返回的数组的列表。如果不指定,返回的数组行=列
# k:可选,指定对角线的位置
# dtype:可选,返回数组的数据类型
np.eye(3,3)  # 3行3列的数组,主对角线为1, 其余为0

# (5)np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# 在指定的范围内返回均匀间隔的数字, 返回均匀分布的样本
# 参数:
# start: 序列的起始点
# end: 序列的结束点
# num: 生成的样本数, 默认是50个。
np.linspace(1,10) # 50个元素的数组
np.linspace(1,10,10) # array([  1.,2.,3., 4.,5.,6.,7.,8.,9.,10.]) -- 1-10分成10份

# (6)np.arange([start,]stop,[step,]dtype=None)
# 类似python原生的range()方法,只不过返回的是array。
np.arange(0,100,step=2)  # 创建由偶数组成的数组

# (7)np.random.randint(low,high=None, size=None, dtype="l")
# 生成在区间[low,high)上的随机整数值;若high=None, 则取值区间变为[0,low), size为最大长度, 为整形和整形元组。
np.random.randint(10,20) # 生成一个10-19之间的随机值
np.random.randint(10,20,size=10) # 返回一个数组,包含10个随机整数
np.random.randint(10,20,size=(2,3,4)) # 生成两个3行4列的随机值数组

# (8)np.randn(d0,d1,...dn)
# 标准的正太分布,参数为维度
np.random.randn(10,5)  # 如果只给第一个参数为一维,给第二个参数为二维,...

# (9)np.random.normal(loc=0.0, scale=1.0, size=None)
# 正太分布函数
# 参数:
# loc : 浮点型, 概率分布的均值, 对应着整体分布的中心center
# scale :浮点型, 概率分布的标准差
# size : 整形或整形数组, 默认为None, 只返回一个值
np.random.normal(175, scale=0, size=100)  # 概率分布的标准差为0, 返回100个元素的数组, 元素都为175
np.random.normal(175, scale=100, size=100)  # 100个正太分布元素

# (10)np.random.random(size=None)
# 生成0到1的随机数。
np.random.random(size=(5,4)) # 5行4列

好好学习,天天向上

 

上一篇:CodeForces 993A Two Squares(数学 几何)


下一篇:使用MXNet的NDArray来处理数据