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

系统 1822 0

学习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的一些简单函数的使用及创建,欢迎大家交流学习哦。

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论