numpy各函数简介之生成数组函数(Array creation routines)

1、empty(shape[, dtype, order])

  依据给定形状和类型(shape[, dtype, order])返回一个新的空数组。

参数:

shape : 整数或者整型元组

  定义返回数组的形状;

dtype : 数据类型,可选

  定义返回数组的类型。

order : {‘C’, ‘F’}, 可选

  规定返回数组元素在内存的存储顺序:C(C语言)-row-major;F(Fortran)column-major。

>>> np.empty([2, 2])
array([[ -9.74499359e+001, 6.69583040e-309],
[ 2.13182611e-314, 3.06959433e-309]])    #random

>>> np.empty([2, 2], dtype=int)
array([[-1073741821, -1067949133],
[ 496041986, 19249760]])    #random

2、empty_like(a)

  依据给定数组(a)的形状和类型返回一个新的空数组。

参数:

a:数组

其形状和类型用来规定返回函数的形状和类型。

返回值:

输出:ndarray

与数组a形状和类型一样的数组。

>>> a = np.array([[1., 2., 3.],[4.,5.,6.]])
>>> np.empty_like(a)
array([[ -2.00000715e+000, 1.48219694e-323, -2.00000572e+000], #random
[ 4.38791518e-305, -2.00000715e+000, 4.17269252e-309]])

3、eye(N[, M, k, dtype])

  返回一个对角线元素为1,其他元素为0的二维数组。

参数:

N : 整数

返回数组的行数;

M : 整数,可选

返回数组的列数。如果不赋值的话,默认等于N;

k : 整数, 可选

对角线序列号: 0 对应主对角线;,整数对应upper diagonal,负数对应lower diagonal;

dtype : dtype, 可选

返回数组的数据类型

返回值:

I : ndarray (N,M)

该数组第k个对角线的元素为1,其他元素为0。

>>> np.eye(2, dtype=int)
array([[1, 0],
[0, 1]])

>>> np.eye(3, k=1)
array([[ 0., 1., 0.],
[ 0., 0., 1.],
[ 0., 0., 0.]])

4、identity(n[, dtype])

  返回一个N维单位方阵。

参数:

n : 整数

返回方阵的行列数;

dtype : 数据类型,可选

返回方阵的数据类型,默认为float.

返回值:

输出: ndarray

n x n 单位方阵。

>>> np.identity(3)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])

5、ones(shape[, dtype, order])

  依据给定形状和类型(shape[, dtype, order])返回一个新的元素全部为1的数组。

参数设置请参考zeros。
>>> np.ones(5)
array([ 1., 1., 1., 1., 1.])

>>> np.ones((5,), dtype=np.int)
array([1, 1, 1, 1, 1])

>>> np.ones((2, 1))
array([[ 1.],
[ 1.]])

>>> s = (2,2)
>>> np.ones(s)
array([[ 1., 1.],
[ 1., 1.]])

6、ones_like()

  依据给定数组(a)的形状和类型返回一个新的元素全部为1的数组。

等同于a.copy().fill(1),具体使用请参考zeros_like的文档。
>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> np.ones_like(a)
array([[1, 1, 1],
[1, 1, 1]])

7、zeros(shape[, dtype, order])

  依据给定形状和类型(shape[, dtype, order])返回一个新的元素全部为0的数组。

参数:

shape:int或者ints元组;

定义返回数组的形状,形如:(2, 3)或2。

dtype:数据类型,可选。

返回数组的数据类型,例如:numpy.int8、默认为numpy.float64。

order:{‘C’, ‘F’},可选,返回数组为多维时,元素在内存的排列方式是按C语言还是Fortran语言顺序(row- or columnwise)。

输出:ndarray

给定形状,数据类型的数组。

>>> np.zeros(5)
array([ 0., 0., 0., 0., 0.])

>>> np.zeros((5,), dtype=numpy.int)
array([0, 0, 0, 0, 0])

>>> np.zeros((2, 1))
array([[ 0.],
[ 0.]])

>>> s = (2,2)
>>> np.zeros(s)
array([[ 0., 0.],
[ 0., 0.]])

>>> np.zeros((2,), dtype=[(’x’, ’i4’), (’y’, ’i4’)]) # custom dtype
array([(0, 0), (0, 0)],
dtype=[(’x’, ’<i4’), (’y’, ’<i4’)])

8、zeros_like(a)

  依据给定数组(a)的形状和类型返回一个新的元素全部为1的数组。

等同于a.copy().fill(0)。

参数:

a : array_like

输出:ndarray

与a数组形状类型一致的0数组。

>>> x = np.arange(6)
>>> x = x.reshape((2, 3))
>>> x
array([[0, 1, 2],
[3, 4, 5]])
>>> np.zeros_like(x)
array([[0, 0, 0],
[0, 0, 0]])
>>> y = np.arange(3, dtype=np.float)
>>> y
array([ 0., 1., 2.])
>>> np.zeros_like(y)
array([ 0., 0., 0.])
9. Generate a 2 x 4 array of ints between 0 and 4, inclusive:
>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])
10.
data[i,:,:,:] = [arr[:,:,0],arr[:,:,1],arr[:,:,2]] #四维数组,表示 第i张图片,通道数,宽度,高度
(X_train,X_val) = (data[0:30000],data[30000:]) #X_train为30000张之前的图片,即0-30000张,X_val为30000张之后的图片,即剩余的图片;
(Y_train,Y_val) = (label[0:30000],label[30000:])

11. 一维 数组与列向量表示的区别
import numpy as np
#一维数组
n=np.random.rand(8)
print(n.shape)
---(8L, ) #表示一维数组,这与列向量(8L, 1L)不同
print(n)
--[ 0.68972635  0.86583492  0.48284636  0.00238456  0.34048265  0.27130601  0.84903173  0.74459052]

#列向量
import numpy as np
n=np.random.rand(8, 1)
print(n.shape)
--- (8L, 1L)
print(n)
---[[ 0.75962757]
 [ 0.16780667]
 [ 0.17308773]
 [ 0.3744512 ]
 [ 0.55398084]
 [ 0.19677841]
 [ 0.25178717]
 [ 0.08120177]]

11.

Examples

>>>
>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

Generate a 2 x 4 array of ints between 0 and 4, inclusive:

>>>
>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值