欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)

程序员文章站 2022-06-02 14:35:49
...

保留初心,砥砺前行

在使用tensorflow的时候需要对输入的tensor进行处理。

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多。 ——百度百科

因此简单记录一下NumPy的学习笔记,方便进行数据处理。

NumPy官方网站

NumPy Tutorial

  • NumPy的主要对象是齐次多维数组。这是一个的有相同类型的元素的表(通常是数字),索引是一个元组的正整数。在NumPy中维度被称为轴(axes)。axes的数量叫做rank。
    例如,三维空间中的一个点的坐标[1, 2, 1]是rank为1的数组,因为它有一个轴(axes),这个轴的长度为3。
    在下边的例子中,这个数组有两个轴 (可以理解为横轴和纵轴)。纵轴的长度为2,横轴的长度为3。
[[ 1., 0., 0.],
 [ 0., 1., 2.]]
  • NumPy的数组类叫做ndarray,别名array。
    注意:这里的numpy.array和python标准库中的那个只能解决一维数组,只提供了少量功能的array.array不一样。

  • ndarray的一些属性:

    ndarray.ndim
    数组中轴的数量,如下图所示,该数组有横轴纵轴两条轴,所以ndarray.ndim值为2
    NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)
    ndarray.shape
    数组的维度,是指明数组每一维的size的整形元组。
    NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)
    ndarray.size
    数组的所有的数字的数量。
    NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)
    ndarray.dtype
    描述数组中元素的类型的对象。从下图中可以看出返回值并不是一个数据类型,而是数据类型的对象。可以通过ndarray.dtype.name得到它的类型。
    NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)
    ndarray.itemsize
    数组中每个元素的字节数。
    NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace)

  • 创建数组:

    使用array函数创建数组。数组的类型由数组中元素的类型得到。
    注意:array函数中传入的要是一个list。

import numpy as np
a = np.array([1, 2, 3])
print a
[1 2 3]
import numpy as np
a = np.array([(1, 2, 3), (1, 2, 3), (1, 2, 3)])
print a
[[1 2 3]
 [1 2 3]
 [1 2 3]]

通常,一个数组的元素最初未知,但它的大小已知。因此NumPy提供了几个函数使用初始内容占位符来创建数组。
函数zeros创建全0数组, 函数ones创建全1数组, 函数empty 创建初始值随机的数组。这些数组默认类型为float64,也可以在函数中制定类型
类似oneszeros,存在函数ones_likezeros_like,作用是创建一个与给出的数组相同形状和类型的全1或全0数组。

import numpy as np
a = np.zeros([2, 3])
print a
[[ 0.  0.  0.]
 [ 0.  0.  0.]]
import numpy as np
a = np.ones([2, 3])
print a
[[ 1.  1.  1.]
 [ 1.  1.  1.]]
import numpy as np
a = np.ones([2, 3], dtype=np.int32)
print a
[[1 1 1]
 [1 1 1]]
import numpy as np
a = np.empty([2, 3])
print a
[[  0.00000000e+000   2.68156175e+154   2.12354999e-314]
 [  2.12357331e-314   2.12357331e-314   2.12357336e-314]]

NumPy中有一个类似于range功能的函数arange,和range基本相同,只是返回的不是list而是数组。

np.arange(1, 20, 3)     #从1开始到20,间隔3
array([ 1,  4,  7, 10, 13, 16, 19])

函数linspace,如下代码所示,在1到2中按等差数列找出10个元素。

 np.linspace(1, 2, 10)
array([ 1.        ,  1.11111111,  1.22222222,  1.33333333,  1.44444444,
        1.55555556,  1.66666667,  1.77777778,  1.88888889,  2.        ])

其他数组创建方式见以下相关链接中NumPy(3)的内容。

相关链接:NumPy(2)reshape,dot,flat
相关链接:NumPy(3)full,eye,empty,random

相关标签: python numpy