【Python数组及其基础操作】【Numpy ndarray】

sdwylry 2020-02-14

一、创建数组

在python中创建数组最简单的办法就是使用array函数。它接受一切序列型的对象,然后产生一个含有传入数据的numpy数组。其中,嵌套序列(比如由一组等长列表组成的列表)会被转换为一个多维数组。

1、array函数:

 numpy.array(object, dtype = None, copy = True, order = None, subok = False ,ndmin = 0) 

  • object             数组或嵌套的数列
  • dtype              数组元素的数据类型,可选
  • copy               对象是否需要复制,可选
  • order              创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
  • subok             默认返回一个与基类类型一致的数组
  • ndmin             指定生成数组的最小维度
#将列表转换为数组
import numpy as np
a = [1, 2, 3, 4]           #创建列表
b = np.array(a)           #将列表转换为数组
#这样就创建完成了一个一维数组 b[1,2,3,4]
1 #直接创建一维数组
2 import numpy as np
3 a = np.array([1, 2, 3, 4])
1 #创建二维数组
2 import numpy as np
3 b = np.arry([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] )

2、zeros和ones分别可以创建指定长度、形状的全0或全1数组

improt numpy as np
np.zeros(3)                  #输出结果为[0., 0., 0.]

np.ones(3)                   #输出结果为[1., 1., 1.]

np.zeros(3,3)               
‘‘‘输出结果为[[0., 0., 0.]
            [0., 0., 0.]
            [0., 0., 0.]]  ‘‘‘

3、创建随机数组

improt numpy as np
np.random.rand(10, 10)    #创建指定形状的数组(范围在0,1之间)
np.random.uniform(0,100) #创建指定范围内的一个数
np.random.randint(0, 100) #创建指定范围内的一个整数
np.random.normal(1.7, 0.1, (2, 3)0  #给定均值/标准差/维度的正态分布

  4、arange函数:

1 np.arange(start, stop, step, dtype = None) 

  根据start(默认为0)和stop指定的范围以及step(默认为1)生成一个数组

import numpy as np
a = np.arange(0, 10, 1)
b = np.arange(10)

  a与b相同为array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 5、数组属性

  • b.size               数组元素个数
  • b.shape           数组形状
  • b.ndim             数组维度
  • b.dtype            数组元素类型
  • b.ltemsize        数组元素字节大小

 6、数组索引和切片

import numpy as np
#先定义一个一维数组[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a = np.arange(10)
>>>a[5]5>>>a[2:5]array([2, 3, 4])

 7、基本数组统计方法

  可以通过数组上的一组数学函数对整个数组或某个轴向的数据进行统计计算

  • sum             对数组中全部或某轴向的元素求和。零长度数组的sum为0
  • mean           算数平均数。零长度数组的mean为NaN
  • std,var          分别为标准差和方差,自由度可调(默认为n)
  • max,min     最大值和最小值
  • argmin, argmax     最大和最小元素的索引
  • cumsum          所有元素的累加
  • cumprod         所有元素的累积

相关推荐

petal0 / 0评论 2020-06-10