NumPyndarray对象
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
例1
import numpy as np
a = np.array([1,2,3])
print (a)
输出结果如下:
[1 2 3]
例2
# 多于一个维度
import numpy as np
a = np.array([[1, 2], [3, 4]])
print (a)
输出结果如下:
[[1 2]
[3 4]]
array 函数 : numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数说明:
名称 | 描述 |
---|---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
NumPy数组属性
ndarray.ndim
ndarray.ndim 用于返回数组的维数,等于秩。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print (a.ndim)
输出结果为:
2
ndarray.shape
ndarray.shape返回的是一个二维数组,数组中的值分别表示行数和列数。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print (a.shape)
输出结果为:
(2, 3)
ndarray.shape也可以调整数组的形状(维度)。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print (a)
输出结果为:
[[1 2]
[3 4]
[5 6]]
除此之外,numpy也提供了 reshape 函数来调整数组大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a = a.reshape(3,2)
print (a)
输出结果为:
[[1 2]
[3 4]
[5 6]]
NumPy创建数组
numpy.zeros
创建指定大小的数组,数组元素以 0 来填充:numpy.zeros(shape, dtype = float)
import numpy as np
# 默认为浮点数
x = np.zeros(5)
print(x)
# 设置类型为整数
y = np.zeros((5,), dtype = np.int)
print(y)
# 自定义类型
z = np.zeros((2,2), dtype = [('x', int), ('y', float)])
print(z)
输出结果为:
[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0.) (0, 0.)]
[(0, 0.) (0, 0.)]]
numpy.ones用法同上
从已有的数组创建数组
numpy.asarray
numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。
numpy.asarray(a, dtype = None, order = None)
实例:
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print (a)
NumPy 从数值范围创建数组
numpy.arange
numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:numpy.arange(start, stop, step, dtype)
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
参数说明:
参数 | 描述 |
---|---|
start | 起始值,默认为0 |
stop | 终止值 |
step | 步长,默认为1 |
dtype | 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。 |
生成 0 到 5 的数组:
import numpy as np
# 设置了 dtype
x = np.arange(5, dtype = float)
print (x)
输出结果如下:
[0. 1. 2. 3. 4.]
设置了起始值、终止值及步长:
import numpy as np
x = np.arange(10,20,2)
print (x)
输出结果如下:
[10 12 14 16 18]