Numpy的ndarray简介

ndarray 简介

import numpy as np
data = np.array([[1.2,3.14,1.21],
                 [2.0,3.1,5.11],
                 [6.1,5.1,8.1]])
data
array([[ 1.2 ,  3.14,  1.21],
       [ 2.  ,  3.1 ,  5.11],
       [ 6.1 ,  5.1 ,  8.1 ]])

ndarray里面的元素必须是相同类型的,每一个数组有两个属性——shape和dtype:
- shape : 一个表示各维度大小的元组
- dtype : 一个用于说明数组数据类型的对象

print "data的shape元组: ",data.shape
print "data的dtpye属性: ",data.dtype
data的shape元组:  (3, 3)
data的dtpye属性:  float64

创建ndarray

可以通过下面几个函数创建ndarray数组:
- array函数:接受一切序列对象,然后产生一个新的含有传入数据的numpy数组
- zeros函数:创建指定长度和形状的全0数组, 只要传入一个表示形状的元组
- ones函数:创建指定长度和形状的全1数组, 只要传入一个表示形状的元组
- empty函数: 创建一个没有任何具体值的数组,只要传入一个表示形状的元组

print "array函数创建ndarray:", np.array([1,2,3])
print "zeros函数创建ndarray:", np.zeros((2,3))
print "ones函数创建ndarray: ", np.ones((3,2))
print "empty函数创建ndarray: ", np.empty((3,3))
array函数创建ndarray:
[1 2 3]

zeros函数创建ndarray: 
[[ 0.  0.  0.]
[ 0.  0.  0.]]

ones函数创建ndarray:  
[[ 1.  1.]
 [ 1.  1.]

empty函数创建ndarray:  
[[  0.00000000e+000   1.71908521e-316   1.49044191e-316]
 [  1.30766410e-316   1.30766410e-316   7.49812045e-309]
 [  3.16202013e-322   0.00000000e+000   3.95252517e-322]]

PS:这里可以发现empty返回的不是全0的数组,它返回的都是未初始化的垃圾值。

其他创建ndarray的函数

  • asarray函数
a = (1,2,3,4)
b = np.asarray(a)
print "b:",b
c = np.asarray(b)
print "c:",c  # 输入的本身就是ndarray就不进行复制
b: [1 2 3 4]
c: [1 2 3 4]
  • arange函数:类似于range,返回的是ndarray而不是列表
print np.arange(10).shape
print np.arange(10).dtype
(10,)
int64
  • ones_like, zeros_like, empty_like函数

根据另一个数组做参考,并根据其shape和dtype创建一个全1的数组

data = np.array([[1.2,3.14,1.21],
                 [2.0,3.1,5.11],
                 [6.1,5.1,8.1]])
np.ones_like(data)
array([[ 1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1.,  1.,  1.]])
np.zeros_like(data)
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
np.empty_like(data)
array([[  2.47300883e-316,   0.00000000e+000,   2.78864326e-316],
       [  2.78728517e-316,   2.78936657e-316,   2.80573477e-316],
       [  6.93779655e-310,   0.00000000e+000,   2.11232826e-316]])
  • eye,identity函数:创建一个N*N的单位矩阵(对角线为全1,其余为全0)
np.eye(4)
array([[ 1.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  1.]])
np.identity(4)
array([[ 1.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  1.]])

上面所有函数都可以在里面定义dtype属性,参考下面:

np.identity(4,dtype=float)
array([[ 1.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  1.]])
np.identity(4,dtype=int)
array([[1, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值