numpy 模块学习记录一

1、 以下测试np.tile()函数的功能(对一维数组使用)

>>> c =[1,2,3,4]

>>> import numpy as np
>>> a = np.array(c)
>>> a
array([1, 2, 3, 4])
>>> np.tile(a,2)
array([1, 2, 3, 4, 1, 2, 3, 4])
>>> np.tile(a,(2,2))
array([[1, 2, 3, 4, 1, 2, 3, 4],
       [1, 2, 3, 4, 1, 2, 3, 4]])
>>> np.tile(a,(2,1))
array([[1, 2, 3, 4],
       [1, 2, 3, 4]])
>>> np.tile(a,(2,2,2))
array([[[1, 2, 3, 4, 1, 2, 3, 4],
        [1, 2, 3, 4, 1, 2, 3, 4]],
       [[1, 2, 3, 4, 1, 2, 3, 4],
        [1, 2, 3, 4, 1, 2, 3, 4]]])
#也可以对二维数组使用tile函数
>>> a1 = np.array([[1,2,3],[1,1,1]])
>>> np.tile(a1,(2,1))
array([[1, 2, 3],
       [1, 1, 1],
       [1, 2, 3],
       [1, 1, 1]])
>>> np.tile(a1,(2,2))
array([[1, 2, 3, 1, 2, 3],
       [1, 1, 1, 1, 1, 1],
       [1, 2, 3, 1, 2, 3],

       [1, 1, 1, 1, 1, 1]])

#注意一维数组的转置还是一维数组,因此如果想把(3,)换成(3,1)的话,必须先通过tile(a,(1,1)),之后再转置一下。

>>> a
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])

>>> np.tile(a,(1,1))
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
        16, 17, 18, 19]])
>>> np.tile(a,1)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
>>> a.T
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
>>> np.tile(a,(1,1)).T
array([[ 0],
       [ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5],
       [ 6],
       [ 7],
       [ 8],
       [ 9],
       [10],
       [11],
       [12],
       [13],
       [14],
       [15],
       [16],
       [17],
       [18],
       [19]])

2、创建数组

  • np.array函数可以添加数据类型参数('int64','float64'),也可以使用a = np.array(), b = a.astype('float64')来改变数据类型
  • np.zeros(shape), np.ones(shape), np.empty(shape)
  • np.eye(N)创建NXN的对角阵(对角线为1,其余为0)
  • np.random.randn(shape)可用来创建正态分布的随机数字组成的数组
  • 可以用数组对象的reshape(shape)方法轻松将一维数组重建shape形状数组,也可以使用数组的flatten()方法轻松将数组变为一维数组。Flatten()和ravel()用法一样,区别在于后者是共用内存,前者复制
  • r eshape也有np.reshape(a,(shape),order=‘C/A/F’)的用法,一样的,此外也可以对多维数组采用此方法。不限于一维展平数组

  • 不同方法创建等差数列:已知首尾和个数使用np.linspace(首,尾,个数),已知首尾和等差使用np.arange(首,尾,等差)
np.linspace(-4.1,3.2,10)
array([-4.1       , -3.28888889, -2.47777778, -1.66666667, -0.85555556,

       -0.04444444,  0.76666667,  1.57777778,  2.38888889,  3.2       ])

np.arange(-4.1,3.2,0.13)
array([-4.1 , -3.97, -3.84, -3.71, -3.58, -3.45, -3.32, -3.19, -3.06,
       -2.93, -2.8 , -2.67, -2.54, -2.41, -2.28, -2.15, -2.02, -1.89,
       -1.76, -1.63, -1.5 , -1.37, -1.24, -1.11, -0.98, -0.85, -0.72,
       -0.59, -0.46, -0.33, -0.2 , -0.07,  0.06,  0.19,  0.32,  0.45,
        0.58,  0.71,  0.84,  0.97,  1.1 ,  1.23,  1.36,  1.49,  1.62,
        1.75,  1.88,  2.01,  2.14,  2.27,  2.4 ,  2.53,  2.66,  2.79,
        2.92,  3.05,  3.18])

  • 不同方法创建等比数列:已知首尾和个数使用np.geomspace(首,尾,个数),已知首尾指数、基和个数使用np.logspace(首指数,尾指数,个数num,基base)
>>> np.geomspace(4.1,3.2,10)
array([4.1       , 3.98863721, 3.88029923, 3.77490388, 3.67237124,

       3.57262356, 3.47558519, 3.38118254, 3.28934403, 3.2       ])

 >>> np.logspace(-3,6,num=20,base = 3.5)
array([2.33236152e-02, 4.22194245e-02, 7.64238216e-02, 1.38339179e-01,
       2.50415747e-01, 4.53292024e-01, 8.20530104e-01, 1.48528899e+00,
       2.68860749e+00, 4.86680388e+00, 8.80968312e+00, 1.59469168e+01,
       2.88664363e+01, 5.22528056e+01, 9.45858249e+01, 1.71215271e+02,
       3.09926663e+02, 5.61016174e+02, 1.01552782e+03, 1.83826562e+03])

>>> np.zeros((2,2,3))

array([[[0., 0., 0.],

        [0., 0., 0.]],

       [[0., 0., 0.],

        [0., 0., 0.]]])

>>> np.ones((2,2),'int8')

array([[1, 1],

       [1, 1]], dtype=int8)

>>> np.empty(2,3)

Traceback (most recent call last):

  File "<pyshell#22>", line 1, in <module>

    np.empty(2,3)

TypeError: data type not understood

>>> np.empty((2,3))

array([[4.24399158e-314, 2.12199579e-314, 2.12199579e-314],

       [4.24399158e-314, 2.12199579e-314, 2.12199579e-314]])

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

       [0., 0., 1.]])

>>> np.random.randn(4,5)
array([[ 1.21889591,  1.17788445,  1.11458146,  0.92636185, -0.63262038],
       [-0.98822116, -0.06948648, -1.8468231 ,  0.01933874, -1.14357655],
       [ 1.12872851,  0.22839521, -0.15845981, -0.73015856, -1.33538379],

       [ 0.22462804, -0.06954899,  0.03237714,  1.3185228 , -0.927427  ]])

a
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
>>> x = a.reshape(4,5)
>>> x
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
>>> x.flatten()
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])

3、np.arange函数相当于内置函数range的数组版

    >>> np.arange(6)

array([0, 1, 2, 3, 4, 5])

np.arange(0,10,0.5)
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])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值