【Python】Numpy之各种创建array的方法及Numpy中的函数使用

学习Python的童鞋,对numpy都不陌生,小白最近学习了一些Numpy的方法,发现Numpy真的很强大。

Numpy:本质的数字化的python,当然也可以存放string类型的数据。

如何创建array?可以用tuple也可用list.

其中,dtype用来指定数据类型,int32指,存放int类型最高32位,不过也可以去掉32,直接写int。数据类型float都可以定义数据的长度,也可以不定义。

第一种用tuple

tuple=(1,2,3,4)
a=np.array(tuple,dtype='int32')
a

结果为:

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

第二种用list

list=[1,2,3,4]
b=np.array(list,dtype='int32')
b

结果为:

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

如果同样是传入int类型的list,但是指定为float类型,如下:

list=[1,2,3,4]
c=np.array(list,dtype='float')
c

结果为:

array([1., 2., 3., 4.])

这里自动就将数据转成float类型了。

上面都是单list或者单tuple传入,那么一样可以混合传入:

d=np.array([list,tuple])
d
d.shape
array([[1, 2, 3, 4],
       [1, 2, 3, 4]])
(2, 4)

这里安利一个小功能,查看array的类型(shape函数),从结果可以看出是一个2行4列的数组。

创建一些特殊的矩阵:

1)生成相应大小的零矩阵,默认数据类型是float

用法:zeros(shape, dtype=float, order='C')
参数:

            shape:形状
            dtype:数据类型,可选参数,默认numpy.float64
            dtype类型:t ,位域,如t4代表4位
                                  b,布尔值,true or false
                                  i,整数,如i8(64位)
                                  u,无符号整数,u8(64位)
                                  f,浮点数,f8(64位)
                                  c,浮点负数,
                                  o,对象,
                                  s,a,字符串,s24
                                  u,unicode,u24
           order:可选参数,c代表与c语言类似,行优先;F代表列优先

2)生成相应大小的1矩阵,默认数据类型是float

用法:numpy.ones(shape, dtype=None, order=’C’)

参数:

           shape:形状
           dtype:数据类型,可选参数,默认numpy.float64

           order:可选参数,c代表与c语言类似,行优先;F代表列优先

3)生成一个随机元素的矩阵,大小按照参数定义,默认数据类型是float

用法:empty(shape[, dtype, order])

参数shape : 整数或者整型元组定义返回数组的形状;
            dtype : 数据类型,可选定义返回数组的类型。
            order : {‘C’, ‘F’}, 可选规定返回数组元素在内存的存储顺序:C(C语言)-rowmajor;F(Fortran)column-major

4)生成相应大小的一个对角线元素为1,其余位置为0的矩阵

用法:numpy.eye(N, M=None, k=0, dtype=, order='C')

参数:

           N:int值,行数。
           M:int值,列数,如果没有则默认为N。
           dtype:返回的数据元素的格式,默认为float。
           order:1.14.0版本后,可选参数{'C', 'F'}

下面是对应的小例子~

1)np.zeros([3,3])
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
2)np.ones([3,4])
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
3)np.empty([2,3])
array([[3.46e-322, 0.00e+000, 0.00e+000],
       [0.00e+000, 0.00e+000, 0.00e+000]])
4)np.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

numpy的一些函数:

1)函数说明:arange([start,] stop[, step,], dtype=None)

    根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。 

2)函数说明:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

   在指定的间隔内返回均匀间隔的数字。
   返回num均匀分布的样本,在[start, stop]。
   这个区间的端点可以任意的被排除在外。

3)random有函数

1.np.random.random((a,b))
  a代表随机生成的个数,b代表区间,如果b=10就是从0-10中随机。
2.numpy.random.rand(a0, a1, ..., an)
  生成一个[0,1)之间的随机浮点数或N维浮点数组。
3.numpy.random.randn(a0, a1, ..., an)
  生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。
4.numpy.random.standard_normal(size=None)
  生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本
5.numpy.random.randint(low, high=None, size=None, dtype='l')
  生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
6.numpy.random.random_integers(low, high=None, size=None)
  生成一个整数或一个N维整数数组,取值范围:若high不为None,则取[low,high]之间随机整数,否则取[1,low]之间随机整数。
7.numpy.random.random_sample(size=None)
  生成一个[0,1)之间随机浮点数或N维浮点数组。
8.numpy.random.choice(a, size=None, replace=True, p=None)
  从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。
9.numpy.random.shuffle(x)
  对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None。
10.numpy.random.permutation(x)
  与numpy.random.shuffle(x)函数功能相同,两者区别:peumutation(x)不会修改X的顺序。

1)np.arange(2,10,2)
array([2, 4, 6, 8])
2)np.linspace(0,10,3)
array([ 0.,  5., 10.])
3)a = np.random.random([4,4])
[[0.94927293 0.11516777 0.15205786 0.36055847]
 [0.24878514 0.33557077 0.30436868 0.70995221]
 [0.39684346 0.18775942 0.03005964 0.57851862]
 [0.22523724 0.59238284 0.86613604 0.29699464]]

      以上是对numpy的一些简单函数的使用及创建,欢迎大家交流学习哦。

 

你可能感兴趣的:(Python,Numpy,分析,Python小白的进阶之路)