numpy的下载、数据类型、属性、数组创建
下载numpy
因为numpy不依赖于任何一个包所以numpy可以直接使用pip
命令直接下载
下载命令:
pip install numpy # 默认从https://pypi.org/simple 下载
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载
pip install numpy -i https://mirrors.aliyun.com/pypi/simple/ # 从阿里云资源站点下载
pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/ # 从中科大资源站点下载
建议使用国内源进行下载避免下载过慢或者下载超时的情况出现
导入
在导入numpy的时候我们习惯于将numpy简写成np方便下面程序的调用,几乎所有的程序员都会这么干
import numpy as np
配置
显示格式的设置
获取显示格式配置信息
np.get_printoptions()
参数 | 说明 |
---|---|
precision | 控制输出结果的精度(即小数点后的位数),默认值为8 |
threshold | 当数组元素总数过大时,设置显示的数字位数,其余用省略号代替(当数组元素总数大于设置值,控制输出值得个数为6个,当数组元素小于或者等于设置值得时候,全部显示),当设置值为sys.maxsize(需要导入sys库),则会输出所有元素 |
suppress | 小数是否需要以科学计数法的形式输出 |
linewidth | 每行字符的数目,其余的数值会换到下一行 |
formatter | 自定义输出规则 |
修改显示格式的配置信息 |
np.set_printoptions(precision=None, threshold=None, linewidth=None, suppress=None, formatter=None)
设置警告信息
查看警告类型的设置
print(np.geterr())
更改警告设置
np.seterr(invalid='ignore')
数组的属性
属性 | 说明 |
---|---|
ndim | 秩,即轴的数量或维度的数量 |
shape | 数组的维度,对于矩阵,n 行 m 列 |
size | 数组元素的总个数,相当于 .shape 中 n*m 的值 |
dtype | ndarray 对象的元素类型 |
itemsize | ndarray 对象中每个元素的大小,以字节为单位 |
flags | ndarray 对象的内存信息 |
real | ndarray元素的实部 |
imag | ndarray 元素的虚部 |
data | 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 |
- ndarray.ndim
ndarray.ndim用于返回数组的维数,也就是秩
import numpy as np
a = np.arange(24)
print(a)
print(a.ndim) # a现在只有一个维度 所以返回的结果为1
# 现在调整数组为三维数组
b = a.reshape(2, 4, 3) # b 的维度是3
print(b)
print(b.ndim) 打印的结果为3
- ndarray.shape
ndarray.shape()表示数组的维度,返回类型为元组,元组的长度就是数组的维度,也可以用于调整数组的大小
a_shape = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(a_shape)
print(a_shape.shape) #(2, 4)
# 调整数组
a_shape.shape = (4, 2)
print(a_shape)
# 和reshape函数的作用一样
- ndarray.size
数组元素的总个数,相当于 .shape 中 n*m 的值
aa = np.arange(6)
print(aa)
print(aa.size)
- ndarray.itemsize
ndarray.itemsize 以字节的形式返回数组中每一个元素的大小
a = np.arange(24, dtype=np.float64) # dtype=指定数据类型
print(a.itemsize)
- ndarray.flages
ndarray.flages 返回ndarray 对象的内存信息,包含以下属性:
|属性 |说明 |
|–|–|
|C_CONTIGUOUS | 数据是在一个单一的C风格的连续段中 |
| F_CONTIGUOUS | 数据是在一个单一的Fortran风格的连续段中 |
|OWNDATA|数组拥有它所使用的内存或从另一个对象中借用它|
|WRITEABLE | 数据区域可以被写入,将该值设置为 False,则数据为只读 |
|ALIGNED | 数据和所有元素都适当地对齐到硬件上 |
|UPDATEIFCOPY|这个数组是其它数组的一个副本,当这个数组被释放时,原数组的内容将被更新|
数组的创建
有几种方法可以创建数组。
方法 | 说明 |
---|---|
empty | 创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组 |
zeros | 创建指定大小的数组,数组元素以 0 来填充 |
ones | 创建指定形状的数组,数组元素以 1 来填充 |
zeros_like | 用于创建一个与给定数组具有相同形状的数组,数组元素以 0 来填充。 |
ones_like | 用于创建一个与给定数组具有相同形状的数组,数组元素以 1 来填充 |
array | 从常规Python列表或元组中创建数组。得到的数组的类型是从Python列表中元素的类型推导出来的。 |
- empty
numpy.empty(shape, dtype = float, order = 'C')
参数 | 说明 |
---|---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 |
x = np.empty([3, 4], dtype=int)
print(x)
注意 :数组元素为随机值,因为它们未初始化。
- numpy.zeros
numpy.zeros(shape, dtype = float, order = 'C')
参数 | 说明 |
---|---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组 |
# 默认的浮点数类型
x = np.zeros(5)
print(x)
# 设置为整数类型
x2 = np.zeros((5,), dtype=int)
print(x2)
# 自定义类型
x3 = np.zeros((2, 2), dtype=[("x", "i4"), ("y", "i4")])
print(x3)
print(x3.dtype)
- numpy.ones
numpy.ones(shape, dtype = None, order = 'C')
参数 | 说明 |
---|---|
shape | 数组形状 |
dtype | 数据类型,可选 |
order | ‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组 |
x = np.ones(5)
print(x)
# 设置为整数类型
y = np.ones([2, 2], dtype=int)
print(y)
# 自定义类型
x3 = np.ones((2, 2), dtype=[("x", "i4"), ("y", "i4")])
print(x3)
- numpy.zeros_like
numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)
参数 | 说明 |
---|---|
a | 给定要创建相同形状的数组 |
dtype | 创建的数组的数据类型 |
order | 数组在内存中的存储顺序,可选值为 ‘C’(按行优先)或 ‘F’(按列优先),默认为 ‘K’(保留输入数组的存储顺序) |
subok | 是否允许返回子类,如果为 True,则返回一个子类对象,否则返回一个与 a 数组具有相同数据类型和存储顺序的数组 |
shape | 创建的数组的形状,如果不指定,则默认为 a 数组的形状。 |
arr = np.arange(9).reshape(3, 3)
print(arr)
arr_like = np.zeros_like(arr)
print(arr_like)
- numpy.ones_like
numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)
参数 | 说明 |
---|---|
a | 给定要创建相同形状的数组 |
dtype | 创建的数组的数据类型 |
order | 数组在内存中的存储顺序,可选值为 ‘C’(按行优先)或 ‘F’(按列优先),默认为 ‘K’(保留输入数组的存储顺序) |
subok | 是否允许返回子类,如果为 True,则返回一个子类对象,否则返回一个与 a 数组具有相同数据类型和存储顺序的数组 |
shape | 创建的数组的形状,如果不指定,则默认为 a 数组的形状。 |
arr = np.arange(9).reshape(3, 3)
print(arr)
arr_like = np.ones_like(arr)
print(arr_like)
个人笔记学习资源来自网络,如有侵权请联系