[numpy]numpy创建数组的方法

2019-03-07  本文已影响30人  Franckisses

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。可以说NumPy对于数组的操作可以达到极致。
今天就简单的演示几个numpy中创建数组的方法:
首先要导入numpy:

import numpy as np

1.首先我们可以使用np.array的方法,通过导入一个列表来创建一个数组。

a = [1,2,3,4,5,6,7]
b = np.array(a)
b
type(b)

>>array([1, 2, 3, 4, 5, 6])
>><class 'numpy.ndarray'>

2.numpy中数组支持元素的同质性。传入的元素类型要是同一种。如果使用np.array()函数时,其中的数组类型不一致,numpy会将其转化为统一类型。

a = np.array([3.14, 4, 2, 3])

>>array([ 3.14,  4.  ,  2.  ,  3.  ])

b = np.array(['nihao','wpmen',123])

>>array(['nihao', 'wpmen', '123'], dtype='<U5')  # dtype="U5"表示字符串不超过5位

3.如果我们想指定生成的数组的类型我们可以使用dtype。

np.array([1, 2, 3, 4], dtype='float32')

>>array([1, 2, 3, 4], dtype='float32')

4.也可以使用列表推导式来生成不同的多维的数组。

np.array([range(i, i + 3) for i in [1, 5, 10]])
>>array([[ 1,  2,  3],
        [ 5,  6,  7],
        [10, 11, 12]])

5.创建一个全0 的数组。

np.zeros(10, dtype=int)  #创建一个数组中有10个0。
>>array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

np.zeros((3, 5), dtype=float)
>>array([[0., 0., 0., 0., 0.],
          [0., 0., 0., 0., 0.],
          [0., 0., 0., 0., 0.]])

6.创建一个全1的数组。

np.ones(10,dtype=float)
>>array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

np.ones((2,4), dtype=float)
>>array([[1., 1., 1., 1.],
         [1., 1., 1., 1.]])

7.创建一个指定的数字的数组。

np.full((3, 5), 'haha')
>>array([['haha', 'haha', 'haha', 'haha', 'haha'],
     ['haha', 'haha', 'haha', 'haha', 'haha'],
     ['haha', 'haha', 'haha', 'haha', 'haha']], dtype='<U4')

8.创建一个等差数列一样的数组。

np.arange(0, 20, 2)
>>array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

9.在指定的区间内生成指定个数字的等差数组。

np.linspace(0, 1,10)  #在0到1之间生成10个等差的数字
>>array([0.        , 0.11111111, 0.22222222, 0.33333333, 0.44444444,
   0.55555556, 0.66666667, 0.77777778, 0.88888889, 1.        ])

10.生成0到1之间的2x2的数组。

np.random.random((2, 2))
>>array([[0.32408551, 0.38448842],
         [0.46157336, 0.67681802]])    

11.生成8个符合正态分布的随机数。

np.random.normal(0, 1,8)
>>array([-0.7775034 , -2.80235722,  0.38742176, -0.34604882,      
    1.57361521, -1.18428685, -0.33859573,  1.58450184, ])

12.生成对角矩阵。

np.eye(3)
>>array([[1., 0., 0.],
        [0., 1., 0.],
        [0., 0., 1.]])
np.eye(3,k=1)
>>array([[0., 1., 0.],
       [0., 0., 1.],
       [0., 0., 0.]])
#解释:
第一个参数:输出方阵(行数=列数)的规模,即行数或列数
第三个参数:默认情况下输出的是对角线全“1”,其余全“0”的方阵,如果k为正整数,则在右上方角
线全“1”其余全“0”,k为负整数则在左下方第k条对角线全“1”其余全“0”。
上一篇下一篇

猜你喜欢

热点阅读