Python学习 - Numpy库

文章目录

    • 1. 初识Numpy
    • 2. Ndarray 对象
      • 2.1 数组属性
        • 2.1.1 数组的维数
        • 2.1.2 数组属性
        • 2.1.3 创建数组
    • 参考资料

1. 初识Numpy

问题1:什么是Numpy

NumPy(Numerical Python)Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
  1. 一个强大的N维数组对象 ndarray
  2.广播功能函数
  3.整合 C/C++/Fortran 代码的工具
  4.线性代数、傅里叶变换、随机数生成等功能

问题2:Numpy的广泛应用?

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过Python 学习数据科学或者机器学习。

2. Ndarray 对象

     NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
 
     ndarray 对象是用于存放同类型元素的多维数组。

创建一个 ndarray的函数

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称 描述
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
copy 对象是否需要复制,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok 默认返回一个与基类类型一致的数组
ndmin 指定生成数组的最小维度
import numpy as np
# 1. 单个维度
a = np.array([1,2,3]) # [1 2 3]
# 2. 多个维度
a = np.array([[1,  2],  [3,  4]]) # [[1  2] [3  4]]
print (a)

2.1 数组属性

属性 说明
ndarray.ndim 秩,即轴的数量或维度的数量
ndarray.shape 数组的维度,对于矩阵,n 行 m 列
ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
ndarray.dtype ndarray 对象的元素类型
ndarray.itemsize ndarray 对象中每个元素的大小,以字节为单位
ndarray.flags ndarray 对象的内存信息
ndarray.real ndarray元素的实部
ndarray.imag ndarray 元素的虚部
ndarray.data 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性

2.1.1 数组的维数

import numpy as np

# a 现只有一个维度
a = np.arange(24)
print(a.ndim)  # 1
# # b 现在拥有三个维度
b = a.reshape(2, 4, 3)  # 3
print(b.ndim)

2.1.2 数组属性

ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。比如,一个二维数组,其维度表示"行数"和"列数"

import numpy as np

# 1. 输出行数和列数
a = np.array([[1, 2, 3], [4, 5, 6]]) # 2行,3列
print(a.shape) # (2, 3)

# 2. 调整行数和列数
a.shape =  (3,2) # 变成 3行2列
print (a) # [[1 2] [3 4] [5 6]]

# 3. NumPy 也提供了 reshape 函数来调整数组大小
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print (b) # [[1 2] [3 4] [5 6]]

2.1.3 创建数组

语法 用法
numpy.empty 创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
numpy.zeros 创建指定大小的数组,数组元素以 0 来填充
numpy.ones 创建指定形状的数组,数组元素以 1 来填充
# 1.numpy.empty 创建一个未初始化的数组
x = np.empty([3,2], dtype = int)
print (x) #  输出为随机值,因为它们未初始化

# 2. numpy.zeros 创建指定大小的数组,数组元素以 0 来填充
# -- 默认为浮点数
x = np.zeros(5) # 创建一维,5个数,未指定类型,默认浮点
print(x)  # [0. 0. 0. 0. 0.]

# -- 设置类型为整数
y = np.zeros((5,), dtype=int) 
print(y) # [0 0 0 0 0]

# -- 自定义类型
z = np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')]) # 创建2行2列,每一个单位是(x,x )
print(z) 
# [[(0, 0) (0, 0)]
# [(0, 0) (0, 0)]]

参考资料

[1] 菜鸟教程

你可能感兴趣的:(#,Python第三方库,python,学习,numpy)