首页 > 编程语言 > 详细

python科学计算库

时间:2019-11-17 14:40:51      阅读:92      评论:0      收藏:0      [点我收藏+]

一、numpy

用NumPy快速处理数据

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
矩阵运算

技术分享图片

 jupyter快捷键

技术分享图片

 

 

 1、ndarray 对象

ndarray 实际上是多维数组的含义。

在 NumPy 数组中,维数称为秩(rank),一维数组 的秩为
1,二维数组的秩为 2,以此类推。在 NumPy 中,每一个线性的数组称为一个轴 (axes),其实秩就是描述轴的数量。

创建数组

技术分享图片

 

 

 

# 引入numpy模块
import numpy as np
# 创建二维数组
array = np.array([[1,2,3],[4,5,6]])
print(array,type(array))

[[1 2 3]
 [4 5 6]] <class numpy.ndarray>

获取数组属性值

# ndim 维度的数量
print(维度的数量,array.ndim)
# 维度
print(维度,array.shape)
# 数组元素的个数
print(数组元素的个数,array.size)
# 对象元素的类型
print(对象元素的类型,array.dtype)
# 对象每个元素的大小、以字节为单位
print(对象每个元素的大小、以字节为单位,array.itemsize)
# 对象内存信息
print( 对象内存信息,array.flags)

特殊函数创建

关键字 
array:创建数组
dtype:指定数据类型
zeros:创建数据全为0
ones:创建数据全为1
empty:创建数据接近0
arange:按指定范围创建数据
linspace:创建线段

技术分享图片

技术分享图片
# 创建全零数组
# 数据全为0,3行4列 
# 默认为float
a = np.zeros((3,4))
print(a)
print(a.dtype)
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
float64


# 创建全为1的数组, 同时也能指定这些特定数据的 dtype:
a = np.ones((3,4),dtype=np.int)
print(a)
print(a.dtype)
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
int32

# 创建全空数组, 其实每个值都是接近于零的数:
a = np.empty((3,4))
print(a)
print(a.dtype)

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
float64

# 用 arange 创建连续数组:
# 10-19 的数据,2步长  arange用来创建数组
a = np.arange(10,20,2)
print(a)
print(a.dtype)

[10 12 14 16 18]
int32


# 使用 reshape 改变数据的形状
# 3行4列 ,0到11
a = np.arange(12).reshape((3,4))
print(a)
print(a.dtype)


[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
int32


# 用 linspace 创建线段型数据:
# 开始端为1 ,结束端10,且分割成20个数据,生成线段
a = np.linspace(1,10,20)
print(a)
print(a.dtype)
View Code

结构数组

# 结构数组
import numpy as np
# 定义数组结构
# persontype = np.dtype({
# ‘names‘:[‘name‘, ‘age‘, ‘chinese‘, ‘math‘, ‘english‘],
# ‘formats‘:[‘S32‘,‘i‘, ‘i‘, ‘i‘, ‘f‘]})

# 也可以这样定义
persontype = np.dtype(
[(name,S32),( age,i), (chinese,i), (math,i), (english,i)]
)


peoples = np.array([("ZhangFei",32,75,100, 90),("GuanYu",24,85,96,88.5),
("ZhaoYun",28,85,92,96.5),("HuangZhong",29,65,85,100)],
dtype=persontype)
ages = peoples[:][age]
chineses = peoples[:][chinese]
maths = peoples[:][math]
englishs = peoples[:][english]
print(np.mean(ages))
print(np.mean(chineses))
print(np.mean(maths))
print(np.mean(englishs))
28.25
77.5
93.25
93.5

创建随机数组

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

指定范围和形状的随机浮点数数组

技术分享图片

 

 

 数组的数据类型

技术分享图片

 算数运算

通过 NumPy 可以自由地创建等差数组,同时也可以进行加、减、乘、除、求 n 次方和取余数。
# 通过 NumPy 可以自由地创建等差数组,同时也可以进行加、减、乘、除、求 n 次方和取余数。

x1 = np.arange(1,11,2)
x2 = np.linspace(1,9,5)
print(x1:,x1)
print(x2:,x2)
print(np.add(x1, x2))
print(np.subtract(x1, x2))
print(np.multiply(x1, x2))
print(np.divide(x1, x2))
print(np.power(x1, x2))
print(np.remainder(x1, x2))

x1: [1 3 5 7 9]
x2: [1. 3. 5. 7. 9.]
[ 2.  6. 10. 14. 18.]
[0. 0. 0. 0. 0.]
[ 1.  9. 25. 49. 81.]
[1. 1. 1. 1. 1.]
[1.00000000e+00 2.70000000e+01 3.12500000e+03 8.23543000e+05
 3.87420489e+08]
[0. 0. 0. 0. 0.]

在取余函数里,你既可以用 np.remainder(x1, x2),也可以用 np.mod(x1, x2),结果是一
样的。

ndarray数组运算

 

(1)数组与标量之间的运算作用于数组的每一个元素

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

统计函数

最大值、最小值、平均值,是否符合正态分布,方差、标准差多少等等。它们可以让你更清楚地对这组数据有认知。

 

 

 

 

 

技术分享图片

 

 

 

 

技术分享图片

 

 

 

 

 

 

 

 

 

python科学计算库

原文:https://www.cnblogs.com/foremostxl/p/11863209.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!