numpy-创建数组及基本概念

在学PyTorch的时候发现numpy这个库很重要,需要先学会一些关于numpy的基础操作。
numpy是一个由多维数组对象和用于处理数组的例程集合组成的库

numpy.arange

这个函数返回ndarray对象,包含给定范围内的等间隔值。(左闭右开)
语法:

numpy.arange(start, stop, step, dtype)
start:范围的起始值,默认为0
stop:范围的终止值。这个必须要写
step:两个值的间隔,默认为1
dtype:返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型

举例:

import numpy as np

a = np.arange(10)
# [0 1 2 3 4 5 6 7 8 9]
print(a)

若设置dtype

import numpy as np

a = np.arange(10,dtype=float)
# [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
print(a)

numpy.array

语法:

 
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
# 创建一维数组
a=np.array([1,2,3])
# [1 2 3]
print(a)
import numpy as np
# 创建二维数组
a=np.array([[1,2,3],[4,5,6]])
# [[1 2 3]
#  [4 5 6]]
print(a)

利用ndmin创建最小维度为三的数组

import numpy as np
# 利用ndmin创建最小维度为三的数组
a=np.array([1,2,3,4,5,6,7,8,9],ndmin=3)
# [[[1 2 3 4 5 6 7 8 9]]]
print(a)

numpy.random.random

首先看下官方给出的定义
在这里插入图片描述
只含有一个参数,即含有几个数,范围是从0.0到1.0,但是在size中可以设置多维的
例:

import numpy as np
#   创建一维数组
a=np.random.random(size=5)
#   [0.05908577 0.91198575 0.75333062 0.25697959 0.14501117]
print(a)
import numpy as np
#   创建二维数组
a=np.random.random(size=(3,4))
#   [[0.0274142  0.33805646 0.58105254 0.52189998]
#    [0.95731453 0.27314703 0.79763513 0.2901342 ]
#    [0.53157242 0.67864834 0.14558273 0.19920197]]
print(a)
import numpy as np
#   创建三维数组
a=np.random.random(size=(2,3,4))
#   [[[0.22642826 0.06072445 0.14460518 0.30384355]
#   [0.3478142  0.47256098 0.43939667 0.4648733 ]
#   [0.3562538  0.68618394 0.66407636 0.28635854]]
# 
#  [[0.89149643 0.44106203 0.35362113 0.04824037]
#   [0.06539381 0.50478194 0.97873172 0.95765194]
#   [0.6702378  0.47600222 0.20559519 0.58534509]]]
print(a)

numpy.random.randint

randint(low, high=None, size=None, dtype=None)
low:起始值,默认为零
high:终止值(不包含,即左闭右开)
size:控制维度
dtype:数组的所需数据类型,可选

import numpy as np
#   生成5-10的随机整数一维数组
a=np.random.randint(5,11,size=5)
#   [6 6 6 9 6]  
print(a)
import numpy as np
#   生成5-10的随机整数二维数组
a=np.random.randint(5,10,size=(4,3))
#   [[7 5 7]
#  [8 9 5]
#  [8 6 8]
#  [5 9 8]]
print(a)

numpy.randn

参数一个size(),可以生成多种维度的标准正态分布的数

import numpy as np
#   创建标准正态分布的一维数组
a=np.random.randn(5)
#   [ 1.15319871 -1.76212287  0.08031211 -0.18964027 -0.75762545]
print(a)
import numpy as np
#   创建标准正态分布的二维数组
a=np.random.randn(2,3)
#   [[-0.08625561  1.92063506  0.44541924]
#  [ 0.38012873  0.71930532  0.80525306]]
print(a)

numpy.random.normal

在这里插入图片描述
加了两个控制期望与方差的参数而已
其他的和randn()一样

numpy.zeros

返回特定大小,以 0 填充的新数组。

numpy.zeros(shape, dtype = float, order = 'C')
Shape 空数组的形状,整数或整数元组
Dtype 所需的输出数组类型,可选
Order 'C'为按行的 C 风格数组,'F'为按列的 Fortran 风格数组

import numpy as np

x = np.zeros((5,), dtype=np.int64)
#   [0 0 0 0 0]
print(x)
# 自定义类型
import numpy as np

x = np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')]
#   [[(0, 0) (0, 0)]
#  [(0, 0) (0, 0)]] 
print(x)

numpy.ones

返回特定大小,以 1 填充的新数组。
其他和numpy.zeros一样

numpy.empty

创建指定形状和dtype的未初始化数组

numpy.empty(shape, dtype = float, order = 'C')

numpy.linspace

此函数类似于arange()函数。 在此函数中,指定了范围之间的均匀间隔数量,而不是步长
numpy.linspace(start, stop, num, endpoint, retstep, dtype)
start 序列的起始值
stop 序列的终止值,如果endpoint为true,该值包含于序列中
num 要生成的等间隔样例数量,默认为50
endpoint 序列中是否包含stop值,默认为ture
retstep 如果为true,返回样例,以及连续数字之间的步长
dtype 输出ndarray的数据类型

例:

import numpy as np

x = np.linspace(10, 20, 5)
#   [10.  12.5 15.  17.5 20. ]
print(x)
# 输出 retstep 值
import numpy as np

x = np.linspace(1, 2, 5, retstep=True)
#   (array([1.  , 1.25, 1.5 , 1.75, 2.  ]), 0.25)
print(x)
# 这里的 retstep 为 0.25

numpy.logspace

此函数返回一个ndarray对象,其中包含在对数刻度上均匀分布的数字。 刻度的开始和结束端点是某个底数的幂,通常为 10

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None,axis=0):
num 范围内的数值数量,默认为50
endpoint 如果为true,终止值包含在输出数组当中
base 对数空间的底数,默认为10
dtype 输出数组的数据类型,如果没有提供,则取决于其它参数

例:

import numpy as np

# 默认底数是 10
a = np.logspace(1.0, 2.0, num=10)
#[ 10.          12.91549665  16.68100537  21.5443469   27.82559402
#  35.93813664  46.41588834  59.94842503  77.42636827 100.        ]
print(a)
# 将对数空间的底数设置为 2
import numpy as np

a = np.logspace(1, 10, num=10, base=2)
#   [   2.    4.    8.   16.   32.   64.  128.  256.  512. 1024.]
print(a)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值