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

保留初心,砥砺前行

在使用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)_第1张图片
ndarray.ndim

ndarray.shape
数组的维度,是指明数组每一维的size的整形元组。
ndarray.shape

ndarray.size
数组的所有的数字的数量。
ndarray.size

ndarray.dtype
描述数组中元素的类型的对象。从下图中可以看出返回值并不是一个数据类型,而是数据类型的对象。可以通过ndarray.dtype.name得到它的类型。
ndarray.dtype

ndarray.itemsize
数组中每个元素的字节数。
ndarray.itemsize

  • 创建数组:

使用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

你可能感兴趣的:(NumPy(1)简介,基础属性,数组创建(ones,zeros,empty,arange,linespace))