python3 numpy 基础(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38125866/article/details/82668615
  • Numpy 的的主要对象是同构多维数组。它是一个元素表,其中的数据类型是相同的。如[1,2,3], [1.0,2.0,3.0]。在Numpy维度中称为轴。例如3D空间中的点坐标[1,2,1]具有一个轴,该轴有三个元素,所以它的长度为3。
[
    [1,2,3],
    [4,5,6],
]

#该数组有两个轴
#第一个轴的长度为2.
#第二个轴的长度为3.
  • Numpy的ndarry类提供对array的支持,与python标准库中的array不同,后者仅能处理一维数组,且功能较少。
ndarray.ndim
    阵列的轴数(尺寸)。

ndarray.shape
    数组的大小。这是一个整数元组,表示每个维度中数组的大小。对于具有n行和m列的矩阵,shape将是(n,m)。shape因此,元组的长度 是轴的数量ndim。

ndarray.size
    数组的元素总数。这相当于元素的乘积shape。

ndarray.dtype
    描述数组中元素类型的对象。可以使用标准Python类型创建或指定dtype。此外,NumPy还提供自己的类型。例如numpy.int32,numpy.int16和numpy.float64。

ndarray.itemsize
    数组中每个元素的大小(以字节为单位)。例如,类型的元素数组float64有itemsize8(= 64/8),而其中一个类型complex32有itemsize4(= 32/8)。它相当于ndarray.dtype.itemsize。

ndarray.data
    包含数组实际元素的缓冲区。通常,不需要使用此属性,使用索引工具访问数组中的元素。
  • 例1

In [1]: import numpy as np

In [2]: a = np.arange(12).reshape(3,4) #arrange(12)跟python自带的range一样的意思,reshape(n,m)转为n行m列的矩阵

In [3]: a
Out[3]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

In [4]: a.ndim  #轴数
Out[4]: 2

In [5]: a.dtype.name    #获取数组的类型名称
Out[5]: 'int64'

In [6]: type(a) #获取对象类型
Out[6]: numpy.ndarray

In [7]: b = np.array([6,7,8])

In [8]: b
Out[8]: array([6, 7, 8])

In [9]: type(b)
Out[9]: numpy.ndarray


  • 数组创建
#使用array创建数组,注意参数是列表或元组。
In [12]: np.array( [1.0, 2.0, 3.0], dtype=int) #dtype创建时指定数据类型。
Out[12]: array([1, 2, 3])

#使用ndarray创建数组,参数是列表或元组,该列表或元组中的数据表示维度。
In [13]: np.ndarray([2,3])#2行三列矩阵,随机初始化
Out[13]: 
array([[6.92037299e-310, 6.92037299e-310, 2.37663529e-312],
       [2.46151512e-312, 2.35541533e-312, 8.48798317e-313]])

#zeros函数创建的是一个由0填充的数组。
In [32]: np.zeros((2,2))
Out[32]: 
array([[0., 0.],
       [0., 0.]])

In [33]: np.zeros([3,4])
Out[33]: 
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])

#ones函数创建的是一个由1填充的数组。
In [34]: np.ones((3,4))
Out[34]: 
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])

In [35]: np.ones([2,2])
Out[35]: 
array([[1., 1.],
       [1., 1.]])

#numpy提供了一个类似range的函数
In [38]: np.arange(10,30,5)
Out[38]: array([10, 15, 20, 25])

#当arange与浮点参数一起使用时,由于有限的浮点精度,通常无法预测获得的元素数量。出于这个原因,通常最好使用linspace作为参数接收我们想要的元素数量的函数

In [45]:  from numpy import pi

In [46]: np.linspace( 0, 2, 9 ) 
Out[46]: array([0.  , 0.25, 0.5 , 0.75, 1.  , 1.25, 1.5 , 1.75, 2.  ])

In [47]: x = np.linspace( 0, 2*pi, 100 )

In [48]:  f = np.sin(x)

In [49]: f
  • 打印数组
In [55]: a = np.array([1,2,3,4,5])
In [56]: print(a)
[1 2 3 4 5]

注意:如果数据过多,打印时会隐藏中间部分的数据,如果需要强制显示,
则设置  np.set_printoptions(threshold=np.nan)

猜你喜欢

转载自blog.csdn.net/weixin_38125866/article/details/82668615