NumPy基础

定义

NumPy:Numerical Python的简称。

ndarray: 一种高效多维数组,是Python中一个快速、灵活的大行数据容器。

所有元组应为同一类型,若不是则向下转化。也称为数组、NumPy数组。

 

生成ndarray

使用array创建

list_1 = list(range(10))
tuple_1 = tuple(range(10))
array_l = np.array(list_1) 
array_t = np.array(tuple_1)
array_a = np.array(range(10))
array_tf1 = (array_l == array_a)
array_tf2 =(array_l == array_t)

print(False not in array_tf1)        #out:True
print(False not in array_tf2)        #out:True
array_l                               #out:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

asarray 与 array的区别

arr1 = np.array([1,2,3])
np.asarray(arr1) is arr1  #out:True
np.array(arr1) is arr1   #out:False

注意array默认复制所有的输入数据,而asarray如果输入的已经是naarray则不再复制。

 

ones 和 ones_like

 

zeros 和 zero_like、full和full_like、empty和empty_like与上面差不多

 

eye、identity

identity可创建一个正方的N*N单位矩阵(对角线为1,其余为0)。

复制代码
1 >>> np.identity(5)
2 array([[ 1.,  0.,  0.,  0.,  0.],
3        [ 0.,  1.,  0.,  0.,  0.],
4        [ 0.,  0.,  1.,  0.,  0.],
5        [ 0.,  0.,  0.,  1.,  0.],
6        [ 0.,  0.,  0.,  0.,  1.]])
复制代码

eye在单参时与identity功能相同:

复制代码
1 >>> np.eye(5)
2 array([[ 1.,  0.,  0.,  0.,  0.],
3        [ 0.,  1.,  0.,  0.,  0.],
4        [ 0.,  0.,  1.,  0.,  0.],
5        [ 0.,  0.,  0.,  1.,  0.],
6        [ 0.,  0.,  0.,  0.,  1.]])
复制代码

除此之外,eye后面可加参数k,表示第几条对角线为全1,如:

复制代码
1 >>> np.eye(5,k=1)
2 array([[ 0.,  1.,  0.,  0.,  0.],
3        [ 0.,  0.,  1.,  0.,  0.],
4        [ 0.,  0.,  0.,  1.,  0.],
5        [ 0.,  0.,  0.,  0.,  1.],
6        [ 0.,  0.,  0.,  0.,  0.]])
复制代码
复制代码
1 >>> np.eye(5,k=-2)
2 array([[ 0.,  0.,  0.,  0.,  0.],
3        [ 0.,  0.,  0.,  0.,  0.],
4        [ 1.,  0.,  0.,  0.,  0.],
5        [ 0.,  1.,  0.,  0.,  0.],
6        [ 0.,  0.,  1.,  0.,  0.]])
复制代码

eye还可以指定长宽(可理解为将单位矩阵截取一部分)。如:

1 >>> np.eye(3,4)
2 array([[ 1.,  0.,  0.,  0.],
3        [ 0.,  1.,  0.,  0.],
4        [ 0.,  0.,  1.,  0.]])

 

ndarray数据类型

arr1 = np.array(seq,dtype = np.float64)

 

arr1 = np.array(seq)

arr1.astype(np.float64)

astyp的功能可以去看文档。

 

 

浮点数转化为整数为截取方式而非四舍五入。

 

posted @ 2019-07-09 21:18  qsl_你猜  阅读(151)  评论(0编辑  收藏  举报