一个强大的N维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能
创建一个 ndarray 只需调用 NumPy 的 array 函数即可:
(numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0))
名称 | 描述 |
---|---|
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认) |
subok | 默认返回一个与基类类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
darray.ndim 用于返回数组的维数,等于秩。
mport numpy as np
a = np.arange(24)
print (a.ndim) # a 现只有一个维度 # 现在调整其大小 b = a.reshape(2,4,3) # b 现在拥有三个维度
print (b.ndim)
输出结果:
1
3
ndarray.shape
ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。比如,一个二维数组,其维度表示"行数"和"列数"。ndarray.shape 也可以用于调整数组大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print (a.shape)
#输出结果为:
(2, 3)
调整数组大小
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]])
b = a.reshape(3,2)
print (b)
#输出结果为
[[1 2]
[3 4]
[5 6]]
应用numpy.empty方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:numpy.empty(shape, dtype = float, order = 'C')
创建空数组
import numpy as np
x = np.empty([3,2], dtype = int)
print (x)
#输出结果为
[[ 6917529027641081856 5764616291768666155]
[ 6917529027641081859 -5764598754299804209]
[ 4497473538 844429428932120]]
##注意 − 数组元素为随机值,因为它们未初始化。
创建一0为填充的数组——np.zero() [以1为填充使用np.one()]
import numpy as np
# 默认为浮点数
x = np.zeros(5)
print(x)
# 设置类型为整数
y = np.zeros((5,), dtype = int)
print(y)
# 自定义类型
z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')])
print(z)
#输出结果为
[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
[(0, 0) (0, 0)]]
参数 | 描述 |
---|---|
a | 任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组 |
dtype | 数据类型,可选 |
order | 可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
将列表转换为 ndarray
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print (a)
#输出结果为
[1 2 3]
将元组转换为 ndarray
import numpy as np
x = (1,2,3)
a = np.asarray(x)
print (a)
#输出结果为
[1 2 3]
将元组列表转换为 ndarray
import numpy as np
x = [(1,2,3),(4,5)]
a = np.asarray(x)
print (a)
#输出结果为
[(1, 2, 3) (4, 5)]
numpy.frombuffer