创建 numpy.array
# 导包
import numpy as np
numpy.array
nparr = np.array([i for i in range(10)])
nparr # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
zeros
.zeros(shape=(x,y), dtype=None, order='C'):返回来一个给定形状和类型的用 0 填充的数组;
ones
.ones(shape=(x,y), dtype=None, order='C'):返回来一个给定形状和类型的用 1 填充的数组;
full
.full(fill_value=数字, shape=(x,y)):返回来一个给定形状用 指定常数 填充的数组;
eye
.eye(N,M =无,k = 0,dtype = None,order ='C'):返回一个二维数组,其中对角线为1,零点为零,默认单位矩阵
shape: 数据尺寸、形状
dtype: 数据类型,可选参数,默认numpy.float64
order: 可选参数,C代表与c语言类似,行优先;F代表列优先
fill_value: 填充的常数
N: int,输出中的行数
M: int,可选参数,输出中的列数。如果无,默认为Ñ。
k: int,可选,对角线的索引:0(默认值)指的是主对角线,正值指的是上对角线,负值指的是下对角线
import numpy as np
# 建立一维数组
np.zeros(10) # array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.ones(10) # array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.zeros(10, dtype=float) # array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) # 建立一个矩阵(二维数组)
np.zeros((3, 5)) # 参数全为0的浮点型
np.zeros(shape=(3, 5), dtype=int)
np.full((3, 5), 666)
np.eye(3, dtype=int)
np.eye(3, k=1)
arange
- .arange(start, stop, step, dtype = None):生成数组
- arange --> 数组
- range --> list
start: 开始位置,数字,可选项,默认起始值为0
stop: 停止位置,数字
step: 步长,数字,可选项, 默认步长为1,如果指定了step,则还必须给出start。
dtype: 输出数组的类型。 如果未给出dtype,则从其他输入参数推断数据类型
import numpy as np
[i for i in range(0, 20, 2)] # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
np.arange(0, 20, 2) # array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
np.arange(0, 1, 0.2) # array([0. , 0.2, 0.4, 0.6, 0.8])
np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
linspace
.linspace(start, stop, num=50,endpoint=True, retstep=True, dtype = None):构造等差数列数组
start:开始数值
stop:结束数值
num:默认是50个样本点(数据),为正整数。
endpoint:默认为True,如果改为Fasle取不到右端点。
retstep:步长,如第一个数据和第第二个数据之间的距离。
dtype:可以设置数值类型,默认numpy.float64
import numpy as np
np.linspace(2, 3, num=5) # array([2. , 2.25, 2.5 , 2.75, 3. ])
np.linspace(2, 3, 5, retstep=True) # (array([2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
np.linspace(2, 3, 5, endpoint=False, retstep=True) # (array([2. , 2.2, 2.4, 2.6, 2.8]), 0.2)
random模块
随机抽样
rand
.random.rand(d0, d1, ... , dn):均匀分布,生成随机浮点数或N维浮点数组∈[0, 1)
import numpy as np
# 无参数
np.random.rand() # 随机生成一个浮点数:0.5693260707056654 # 一个参数
np.random.rand(5) #生成一个形状为5的一维数组
"""
array([0.03033044, 0.77342689, 0.05433217, 0.09637677, 0.78388356])
""" #两个参数
np.random.rand(2,3) #生成2x3的二维数组
"""
array([[0.62207475, 0.76152107, 0.8322783 ],
[0.9625673 , 0.14159552, 0.04631563]])
""" # 三个参数
np.random.rand(2,3,4) # 生成2个3x4的二维数组的三维数组
"""
array([[[0.69515825, 0.18253848, 0.94369687, 0.75510563],
[0.96469044, 0.10572931, 0.57167311, 0.26631619],
[0.25474511, 0.93999817, 0.49682046, 0.34514234]], [[0.59947499, 0.72308947, 0.80828931, 0.23145396],
[0.21023288, 0.2578903 , 0.30873597, 0.57619749],
[0.60353256, 0.02622591, 0.6148662 , 0.26888455]]])
"""
# 注意:参数必须是整数,不能是元组
randn
.random.randn(d0, d1, ... , dn):标准正态分布,生成随机浮点数或N维浮点数组∈(-∞, +∞)
np.random.randn(2,3)
"""
array([[ 1.20815015, -1.71343109, -0.09987136],
[-0.33742606, 0.77209376, 0.18604608]])
"""
randint
.random.randint(low, high=None, size=None, dtype='l'):离散均匀分布,生成整数或N维整数数组
high ≠ None时,∈[low,high)
high = None时,∈[0,low)
import numpy as np
# 生成一个[0,2)之间随机整数
np.random.randint(2) # # 生成形状为10的一维整数数组 --> [1,10)随机整数
np.random.randint(1,10, size=10) # array([2, 6, 1, 4, 2, 4, 5, 3, 9, 9]) #生成一个2x3整数数组 --> [2,6)随机整数
np.random.randint(2,6,(2,3)) # np.random.randint(2,6,size=(2,3))
"""
array([[4, 3, 3],
[3, 2, 5]])
"""
seed
.random.seed(num):具有预见性:如果使用相同的num,则每次生成的随机数都相同。当参数不同或者无参数时,作用与numpy.random.rand()函数相同,即多次生成随机数且每次生成的随机数都不同。
random
.random.random(size=None):返回随机的浮点数∈[0, 1)
import numpy as np np.random.random(3)
"""
array([0.59252408, 0.37882179, 0.61683128])
""" np.random.random((3,4))
"""
array([[0.51443445, 0.26071378, 0.17125182, 0.67260413],
[0.11513209, 0.35772957, 0.79621782, 0.29822459],
[0.19795992, 0.76367099, 0.25980888, 0.22451909]])
"""
normal
.random.normal(loc=0.0, scale=1.0, size=None):均值为loc,标准差为scale的正态分布∈(-∞, +∞)
import numpy as np
ran = np.random.normal(0, 1, (3, 5))
ran
"""
array([[ 1.85322786, 1.13089185, -0.55186512, -1.58926526, -0.00656168],
[ 0.44077735, -0.1599656 , -0.2450492 , 1.71447564, -0.1603678 ],
[-0.0495362 , 0.30244281, 1.62018096, 0.31465292, 1.99379836]])
""" """
均值:μ
方差:σ^2=(∑▒〖(X-μ)〗^2 )/N
标准差:s=√(σ^2 )
协方差:σ^2=(∑▒〖(X-μ)〗^2 )/N-1
"""
# 均值
ran.mean()
# 方差
ran.var()
# 标准差
ran.std(ddof=1)
# 协方差
ran.cov()
permutation
.random.permutation(x):随机打乱x中的元素。若x是整数,则打乱arange(x),若x是一个数组,则将copy(x)的第一位索引打乱,意思是先复制x,对副本进行打乱处理,打乱只针对数组的第一维
np.random.permutation(5) # array([2, 1, 4, 3, 0])
np.random.permutation(5) # array([4, 3, 0, 2, 1])
np.random.permutation([[1,2,3],[4,5,6]])
"""
array([[1, 2, 3],
[4, 5, 6]])
"""
np.random.permutation([[1,2,3],[4,5,6]])
"""
array([[4, 5, 6],
[1, 2, 3]])
"""
shuffle
.random.shuffle(x):与permutation类似,随机打乱x中的元素。若x是整数,则打乱arange(x),但是shuffle会对x进行修改
a = np.arange(5)
a # array([0, 1, 2, 3, 4])
np.random.shuffle(a)
a # array([2, 4, 3, 1, 0])
choice
.random.choice(a, size=None, replace=True, p=None): 从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取,p是a中每个数出现的概率,若a是整数,则a代表的数组是arange(a)
np.random.choice(5) #
# 随机在2或4中选一个
np.random.choice([2, 4]) #
# 选取2的概率为1,选取3的概率为0
np.random.choice([2, 3], p=[1, 0]) #
# 选取3的概率为0,选取5的概率为1
np.random.choice([3, 5], p=[0, 1]) #
# 从0-4随机抽取5个数,可重复抽取
np.random.choice(5, 5) # array([3, 0, 1, 3, 0])
# 从0-4随机抽取5个数,不可重复抽取
np.random.choice(5, 5, False) # rray([3, 0, 1, 4, 2])
np.random.choice(100, (2, 3, 5), False)
"""
array([[[29, 72, 13, 61, 45],
[28, 86, 74, 52, 0],
[76, 77, 60, 48, 12]], [[85, 99, 90, 46, 79],
[64, 3, 57, 83, 87],
[17, 59, 7, 16, 96]]])
"""
bytes
.random.bytes(length):生成随机字节
np.random.bytes(1) # b'\xd4'
np.random.bytes(2) # b'\x9b\x8a'
uniform
.random.uniform(low,high,size):从一个均匀分布 [low,high) 中随机采样
low:采样下界,float类型,默认值为0;
high:采样上界,float类型,默认值为1;
size:输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致
import matplotlib.pyplot as plt
import numpy as np s = np.random.uniform(0,1,1200) # 产生1200个[0,1)的数
count, bins, ignored = plt.hist(s, 12, normed=True)
"""
hist原型:
matplotlib.pyplot.hist(x, bins=10, range=None, normed=False, weights=None,
cumulative=False, bottom=None, histtype='bar', align='mid',
orientation='vertical',rwidth=None, log=False, color=None, label=None,
stacked=False, hold=None,data=None,**kwargs)
输入参数很多,具体查看matplotlib.org,本例中用到3个参数,分别表示:s数据源,bins=12表示bin
的个数,即画多少条条状图,normed表示是否归一化,每条条状图y坐标为n/(len(x)`dbin),整个条状图积分值为1
输出:count表示数组,长度为bins,里面保存的是每个条状图的纵坐标值
bins:数组,长度为bins+1,里面保存的是所有条状图的横坐标,即边缘位置
ignored: patches,即附加参数,列表或列表的列表,本例中没有用到。
"""
plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')
plt.show()
创建 numpy.array的更多相关文章
- python numpy array 的一些问题
1 将list转换成array 如果list的嵌套数组是不规整的,如 a = [[1,2], [3,4,5]] 则a = numpy.array(a)之后 a的type是ndarray,但是a中得元素 ...
- Python Numpy Array
Numpy 是Python中数据科学中的核心组件,它给我们提供了多维度高性能数组对象. Arrays Numpy.array dtype 变量 dtype变量,用来存放数据类型, 创建数组时可以同 ...
- 【笔记】numpy.array的常用基本运算以及对数据的操作
numpy.array的基本运算以及对数据的操作 设置一个问题,例如 这种只需要基本的运算就可以实现 类似的 numpy对向量的运算进行了优化,速度是相当快的,这种被称为universal funct ...
- 【笔记】numpy.array基础(1)
numpy.array基础 使用numpy.__version__可以检查numpy的版本 当然也可以直接使用命令行检查numpy版本 也可以用来简化引用,使用as python list特点 num ...
- numpy.array
关于python中的二维数组,主要有list和numpy.array两种. 好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 我们主要 ...
- gensim与numpy array 互转
目的 将gensim输出的格式转化为numpy array格式,支持作为scikit-learn,tensorflow的输入 实施 使用nltk库的停用词和网上收集的资料整合成一份新的停用词表,用来过 ...
- 找出numpy array数组的最值及其索引
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where ...
- 「Python」Convert map object to numpy array in python 3
转自Stackoverflow.备忘用. Question In Python 2 I could do the following: import numpy as np f = lambda x: ...
- python numpy array 与matrix 乘方
python numpy array 与matrix 乘方 编程语言 waitig 1年前 (2017-04-18) 1272℃ 百度已收录 0评论 数组array 的乘方(**为乘方运算符)是每个元 ...
随机推荐
- HDU - 1512 Monkey King
Problem Description Once in a forest, there lived N aggressive monkeys. At the beginning, they each ...
- UDP方式的传输
UDP 部分内容需要查文档学习,我们需要了解下面的两个类:java.net.DatagramSocket和java.net.DatagramPacket java.net.DatagramSocket ...
- Redis 复制过程详解
Redis 的复制功能分为同步( sync )和命令传播( command propagate )两个步骤: 同步用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态. 命令传播则用于在主服务 ...
- netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
PoolArena实现了用于高效分配和释放内存,并尽可能减少内存碎片的内存池,这个内存管理实现使用PageRun/PoolSubpage算法.分析代码之前,先熟悉一些重要的概念: page: 页,一个 ...
- Bran的内核开发教程(bkerndev)-05 打印到屏幕
打印到屏幕 现在, 我们需要尝试打印到屏幕上.为此, 我们需要管理屏幕滚动, 如果能允许使用不同的颜色就更好了.好在VGA视频卡为我们提供了一片内存空间, 允许同时写入属性字节和字符字节对, 可以 ...
- 攻防世界(XCTF)WEB(进阶区)write up(一)
cat ics-05 ics-06 lottery Cat XCTF 4th-WHCTF-2017 输入域名 输入普通域名无果 输入127.0.0.1返回了ping码的结果 有可能是命令执行 ...
- 2019.10.28 CSP%您赛第四场t3
我写不动前两个了. 原谅一下. ____________________________________________________________________________________ ...
- 从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(一)
摘要:随着前端技术的飞速发展,越来越多的技术领域开始被前端工程师踏足.从NodeJs问世至今,各种前端工具脚手架.服务端框架层出不穷,“全栈工程师”对于前端开发者来说,再也不只是说说而已.在NodeJ ...
- 百万年薪python之路 -- 基本数据类型
整数 -- 数字(int) 用于比较和运算 32位 2 ** 31 ~ 2 ** 31-1 64位 -2 ** 63 ~ 2 ** 63- 1 + - * / // ** % python2 整型 ...
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...