numpy(1)基本使用及常用统计函数

1、数据类型

在这里插入图片描述

nan和inf是什么

  • nan not a number

  • np.nan != np.nan

  • 任何值和nan进行计算都是nan

  • inf 无穷

1.1、数据类型的操作

在这里插入图片描述

In [9]: t3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])

In [10]: t3
Out[10]:
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]]])

1.1、查看数组类名:type()

In [13]: type(t3)
Out[13]: numpy.ndarray

1.2、查看数据类型:

In [15]: t3.dtype
Out[15]: dtype('int32')

1.3、查看数组形状

In [16]: t3.shape
Out[16]: (2, 2, 3)

1.2、修改数组形状reshape()

In [17]: t4 = np.arange(12)

In [18]: t4
Out[18]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

In [19]: t4.reshape((3,4))	# 三行四列
Out[19]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

1.2.1、三维数组

In [23]: t5 = np.arange(24).reshape((2,3,4))

In [24]: t5
Out[24]:
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

1.2.2、reshape第一个参数为数据的块数,第二个为每块中数据行数

三维数组变二维数组

In [25]: t5.reshape((4,6))
Out[25]:
array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])

1.2.3、变为一维数组

(1,24)与(24,1)都是二维数组,相当于在一维数组上加一个中括号

In [26]: t5.reshape(24,)
Out[26]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])

1.2.4、将未知三维数组转换为一维的方法(得到数组的总元素个数,二维同理)

方法一

In [35]: t6 = t5.reshape((t5.shape[0]*t5.shape[1]*t5.shape[2],))

In [36]: t6
Out[36]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])

方法二flatten()函数直接展开数组

In [38]: t5.flatten()
Out[38]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])

注意

  • reshape函数是有返回值的不会对源数组造成改变
  • 直接对源改变的函数一般不会有返回值
  • reshape第一个参数为数据的块数,第二个为每块中数据行数

2、 数组和数的计算

2.1 加减乘除

In [10]: t2 + 2
Out[10]:
array([[ 2,  3,  4,  5,  6,  7],
       [ 8,  9, 10, 11, 12, 13],
       [14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25]])

In [11]: t2 *2
Out[11]:
array([[ 0,  2,  4,  6,  8, 10],
       [12, 14, 16, 18, 20, 22],
       [24, 26, 28, 30, 32, 34],
       [36, 38, 40, 42, 44, 46]])

In [12]: t2/2
Out[12]:
array([[ 0. ,  0.5,  1. ,  1.5,  2. ,  2.5],
       [ 3. ,  3.5,  4. ,  4.5,  5. ,  5.5],
       [ 6. ,  6.5,  7. ,  7.5,  8. ,  8.5],
       [ 9. ,  9.5, 10. , 10.5, 11. , 11.5]])

In [13]: t2/0
A:\program\anaconda\Scripts\ipython:1: RuntimeWarning: divide by zero encountered in true_divide
A:\program\anaconda\Scripts\ipython:1: RuntimeWarning: invalid value encountered in true_divide
Out[13]:
array([[nan, inf, inf, inf, inf, inf],
       [inf, inf, inf, inf, inf, inf],
       [inf, inf, inf, inf, inf, inf],
       [inf, inf, inf, inf, inf, inf]])

除以0得到的结果:

  • nan:not a number
  • inf:infinity 无限,无穷
In [16]: t3
Out[16]:
array([[100, 101, 102, 103, 104, 105],
       [106, 107, 108, 109, 110, 111],
       [112, 113, 114, 115, 116, 117],
       [118, 119, 120, 121, 122, 123]])

In [17]: t2 + t3
Out[17]:
array([[100, 102, 104, 106, 108, 110],
       [112, 114, 116, 118, 120, 122],
       [124, 126, 128, 130, 132, 134],
       [136, 138, 140, 142, 144, 146]])

In [18]: t2*t3
Out[18]:
array([[   0,  101,  204,  309,  416,  525],
       [ 636,  749,  864,  981, 1100, 1221],
       [1344, 1469, 1596, 1725, 1856, 1989],
       [2124, 2261, 2400, 2541, 2684, 2829]])
In [21]: t4
Out[21]:
array([[0],
       [1],
       [2],
       [3]])

In [22]: t3
Out[22]:
array([[100, 101, 102, 103, 104, 105],
       [106, 107, 108, 109, 110, 111],
       [112, 113, 114, 115, 116, 117],
       [118, 119, 120, 121, 122, 123]])

In [23]: t3 -t4
Out[23]:
array([[100, 101, 102, 103, 104, 105],
       [105, 106, 107, 108, 109, 110],
       [110, 111, 112, 113, 114, 115],
       [115, 116, 117, 118, 119, 120]])

计算规则:

  • 维度相同的进行对应位置的计算
  • 遵循广播原则
    若两个数组的后缘维度(training dimension,从末尾开始计算的元素)轴长度相等或其中一方为1,则他们广播兼容。广播会在缺失或长度为1的维度上进行。
    例如:
    三维数组shape(3,3,3)与(3,2)不能计算,shape(3,3,2)与(3,2)能计算
    二维数组必须遵循行列完全相同或者与此二维数组轴长相同的一位数组
    上述t3 - t4计算中 t4对比t3为一列缺失维度,所以计算会在t4每一列上进行

3、常用统计函数

  • 求和:t.sum(axis=None)
  • 均值:t.mean(a,axis=None) 受离群点的影响较大
  • 中值:np.median(t,axis=None)
  • 最大值:t.max(axis=None)
  • 最小值:t.min(axis=None
  • 极值:np.ptp(t,axis=None) 即最大值和最小值只差
  • 标准差:t.std(axis=None)
    在这里插入图片描述标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值
    反映出数据的波动稳定情况,越大表示波动越大,约不稳定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值