常用Python数据分析开源库numpy 1

系统学习建议看这里,我有一部分也是从这查的

NumPy(Numerical Python)

        它是 Python 语言的一个扩展程序库。是一个运行速度非常快的数学库.

        主要用于数组计算

        包含:

                一个强大的N维数组对象 ndarray

                广播功能函数

                整合 C/C++/Fortran 代码的工具

                线性代数、傅里叶变换、随机数生成等功能

Numpy包安装

没有下载numpy包的建议下载一个anaconda,里面切换版本方便

点击这里前往下载anaconda

当然也可以直接pip 下载

pip install numpy

已经有conda的可以用conda下载

conda install numpy

注意,因为服务器是国外的,如果感觉下载慢可以看这里!!!!

# 注意,使用pip时最好指定安装源, 参考镜像地址, 
阿里云:https://mirrors.aliyun.com/pypi/simple/
豆瓣:https://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

# 完整格式如下
pip install 包名 -i https://mirrors.aliyun.com/pypi/simple/  #通过阿里云镜像安装

NumPy Ndarray 对象

        

ndarray 对象是用于存放同类型元素的多维数组。

ndarray 中的每个元素在内存中都有相同存储大小的区域。

ndarray 内部由以下内容组成:

  • 一个指向数据(内存或内存映射文件中的一块数据)的指针。

  • 数据类型或 dtype,描述在数组中的固定大小值的格子。

  • 一个表示数组形状(shape)的元组,表示各维度大小的元组。

  • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数

  • 看不懂建议复制上面的文字询问AI

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

 object:可遍历对象

dtype:数据类型copy:是否复制(是否不用同一个内存地址):注意object如果是list则不生效因为list实际存储的是对象的地址

ndmin:强制指定生成的最小维度

order:略

subok:略

NumPyNdarray对象的属性

        优先介绍这5个:建议运行一下

# 导包
import numpy as np

# 创建列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 转换为numPy 的 Ndarray对象
n1 = np.array(my_list)
print(my_list, type(my_list))
print(n1.ndim)  # 维度
print(n1.shape)  # 形状[重点]
print(n1.dtype)  # 数据类型
print(n1.size)  # 元素个数
print(n1.itemsize)  # 每个元素的字节数
print(n1.nbytes)  # 总字节数

详细解释:

        ndim:秩,即数组的维度数量或轴的数量。

        shape:形状,描述数组为几行几列

        dtype:数组中的数据类型

        size:大小,描述数组存储的元素个数

        itemsize:每个元素的字节数

        nbtes:size*itemsize=netes 总字节数

创建数组方式

1.直接从列表转过来

下面就是因该2维数组

a1 = np.array([[1, 2, 3], [4, 5, 6]])
print(a1, a1.shape)

2.创建全为0或1的数组

两行三列,两层(理解为多了厚度)

# np.zeros创建一个全为0的数组
a2 = np.zeros((2, 2, 3))
print(a2, a2.shape)
print('-----------------------------------------')
# np.ones创建一个全为1的数组
a3 = np.ones((2, 2, 3))
print(a3, a3.shape)

创建等差等比数组

        结果就不写了,感兴趣的可以自己复制运行,也能帮助理解

# 演示等比数组和等差数组的创建和对比
import numpy as np

# 先演示等差数组创建
a1 = np.linspace(1, 10)  # 默认50个,默认包含结束值
print(a1, a1.shape)
print('-------------------------------------------------------')
a1 = np.linspace(1, 10, 10)  # 修改为10个,,默认包含结束值
print(a1, a1.shape)
print('-------------------------------------------------------')
a1 = np.linspace(1, 10, 10, endpoint=False)  # 修改维10个,修改不包含结束值
print(a1, a1.shape)
print('=============================================================================')
# 演示等比数组创建
a2 = np.logspace(0, 0)  # 默认50个,默认基础值是10
print(a2, a2.shape)
print('-------------------------------------------------------')
a2 = np.logspace(0, 3, 5)  # 修改为5个,默认基础值是10
print(a2, a2.shape)
print('-------------------------------------------------------')
a2 = np.logspace(0, 3, 5,  base=2)  # 修改为5个,默认基础值是10
print(a2, a2.shape)

数组的基本函数

ceil(ndarray对象: a):向上取整

floor(a):向下取整

rint(a):四舍五入

isnan(a):是否不是数字

multiply(a,a):相乘

divide(a,a):相除

abs(a):绝对值

where:类似三元表达式 true 则取前面的数,false则取后面的数

# 演示数组的基本函数
# 导包
import numpy as np

print('---------------------------------------------------------------------')
# 创建一个随机浮点数数组
a1 = np.random.randn(2, 3)
print(a1)
print('------------------')
# 演示基本函数
print(np.ceil(a1))  # 向上取整
print('------------------')
print(np.floor(a1))  # 向下取整
print('------------------')
print(np.rint(a1))  # 四舍五入
print('------------------')
print(np.isnan(a1))  # 判断是否不是数字
print('--------------------------------------------------------------------')
# 再创建一个随机整数数组
a2 = np.random.randint(1, 5, size=(2, 3))
print(a2)
print('------------------')
print(np.multiply(a2, a2))  # 乘法
print('------------------')
print(np.divide(a2, a2))  # 除法
print('------------------')
print(np.abs(a2))  # 绝对值
print('------------------')
print(np.where(a2 % 2 == 0, 1, 0))  # 条件判断

你可能感兴趣的:(python,数据分析,numpy)