Python Pandas数据结构
_Pandas_处理以下三个数据结构 -
系列(Series)
数据帧(DataFrame)
面板(Panel)
这些数据结构构建在_Numpy_数组之上,这意味着它们很快。
维数和描述
考虑这些数据结构的最好方法是,较高维数据结构是其较低维数据结构的容器。 例如,DataFrame是Series的容器,Panel是DataFrame的容器。
数据结构
维数
描述
系列
1
1D标记均匀数组,大小不变。
数据帧
2
一般2D标记,大小可变的表结构与潜在的异质类型的列。
面板
3
一般3D标记,大小可变数组。
构建和处理两个或更多个维数组是一项繁琐的任务,用户在编写函数时要考虑数据集的方向。 但是使用_Pandas_数据结构,减少了用户的思考。 例如,使用表格数据(DataFrame),在语义上更有用于考虑索引(行)和列,而不是轴0和轴1。 可变性 所有_Pandas_数据结构是值可变的(可以更改),除了系列都是大小可变的。系列是大小不变的。
注 - DataFrame被广泛使用,是最重要的数据结构之一。面板使用少得多。
系列
系列是具有均匀数据的一维数组结构。例如,以下系列是整 ...
Python科学计算库Numpy之 线性代数
NumPy - 线性代数
NumPy 包包含numpy.linalg模块,提供线性代数所需的所有功能。 此模块中的一些重要功能如下表所述。
序号
函数及描述
dot 两个数组的点积
vdot 两个向量的点积
inner 两个数组的内积
matmul 两个数组的矩阵积
determinant 数组的行列式
solve 求解线性矩阵方程
inv 寻找矩阵的乘法逆矩阵
numpy.dot()
此函数返回两个数组的点积。 对于二维向量,其等效于矩阵乘法。 对于一维数组,它是向量的内积。 对于 N 维数组,它是a的最后一个轴上的和与b的倒数第二个轴的乘积。
numpy.vdot()
此函数返回两个向量的点积。 如果第一个参数是复数,那么它的共轭复数会用于计算。 如果参数id是多维数组,它会被展开
numpy.inner()
此函数返回一维数组的向量内积。 对于更高的维度,它返回最后一个轴上的和的乘积。
numpy.matmul
numpy.matmul()函数返回两个数组的矩阵乘积。 虽然它返回二维数组的正常乘积,但如果任一参数的维数大于2,则将其视为存 ...
Python科学计算库Numpy之 矩阵库
NumPy - 矩阵库
NumPy 包包含一个 Matrix库numpy.matlib。此模块的函数返回矩阵而不是返回ndarray对象
代码举例:
import numpy.matlib
import numpy as np
print(np.matlib.empty((2, 2))) # 填充为随机数据
print(np.matlib.zeros((2, 2)))
print(np.matlib.ones((2, 2)))
print(np.matlib.eye(n=3, M=4, k=0, dtype=float))
print(np.matlib.identity(5, dtype=float))
print(np.matlib.rand(3, 3))
i = np.matrix(‘1,2;3,4’)
print(np.asarray(i))
print(np.asmatrix(i))
代码 Github地址:https://github.com/shadowagnoy/python_learn/
参考文档:https://docs.scipy.org/doc/numpy/r ...
Python科学计算库Numpy之 复制和视图
NumPy - 副本和视图
在执行函数时,其中一些返回输入数组的副本,而另一些返回视图。 当内容物理存储在另一个位置时,称为副本。 另一方面,如果提供了相同内存内容的不同视图,我们将其称为视图。
无复制
简单的赋值不会创建数组对象的副本。 相反,它使用原始数组的相同id()来访问它。 id()返回 Python 对象的通用标识符,类似于 C 中的指针。 此外,一个数组的任何变化都反映在另一个数组上。 例如,一个数组的形状改变也会改变另一个数组的形状。
视图或浅复制
NumPy 拥有ndarray.view()方法,它是一个新的数组对象,并可查看原始数组的相同数据。 与前一种情况不同,新数组的维数更改不会更改原始数据的维数 切片属于视图
深复制
ndarray.copy()函数创建一个深层副本。 它是数组及其数据的完整副本,不与原始数组共享。
import numpy as np
a = np.arange(6)
b = a
b.shape = 3, 2
print(a)
print(id(a) == id(b)) # 直接使用 = 复制 a和b 完全一致
c = a.view()
...
Python科学计算库Numpy之 排序、搜索和计数函数
NumPy - 排序、搜索和计数函数
NumPy中提供了各种排序相关功能。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。
种类
速度
最坏情况
工作空间
稳定性
'quicksort'(快速排序)
1
O(n^2)
0
否
'mergesort'(归并排序)
2
O(n*log(n))
~n/2
是
'heapsort'(堆排序)
3
O(n*log(n))
0
否
numpy.sort(a, axis, kind, order)
序号
参数及描述
a 要排序的数组
axis 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序
kind 默认为'quicksort'(快速排序)
order 如果数组包含字段,则是要排序的字段
代码举例:
import numpy as np
a = np.array([[3, 7], [9, 1]])
print(np.sort(a))
print(np.sort(a, axis=0))
dt = np.dtype([(‘na ...
Python科学计算库Numpy之 统计函数
NumPy - 统计函数
NumPy 有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等.
代码举例:
import numpy as np
a = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
‘’’
numpy.amin() 和 numpy.amax()
这些函数从给定数组中的元素沿指定轴返回最小值和最大值
‘’’
print(np.amin(a, axis=0))
print(np.ptp(a, axis=1)) # numpy.ptp()函数返回沿轴的值的范围(最大值 - 最小值)
a = np.array([[30, 40, 70], [80, 20, 10], [50, 90, 60]])
print(np.percentile(a, 50))
print(np.percentile(a, 50, axis=1)) # 分位数是统计中使用的度量,表示小于这个值得观察值占某个百分比
print(np.median(a, axis=0)) # 中值定义为将数据样本的上半部分与下半部分分开的值
prin ...
mongodb 分片+副本集 身份认证和角色创建
简介:
mongodb 数据库分片+副本集 搭建完成以后,就可以正常使用,但是有数据安全问题,所以最好设置安全验证。
1.创建超级管理员和普通用户
超级管理员:可管理所有的数据库。 普通用户:某个数据库的管理员。 开启数据库登录认证之前必须要创建一个超级数据库管理员了,否则无法对数据库进行操作。 如何创建用户和数据库授权,请参考Mongodb官方文档。参考地址: https://docs.mongodb.com/manual/core/security-users/ https://docs.mongodb.com/manual/tutorial/create-users/
1.1.数据库角色介绍
MongoDB基本的角色 1.数据库用户角色Database UserRoles:read、readWrite; 2.数据库管理角色DatabaseAdministrator Role:dbAdmin、dbOwner、userAdmin; 3.集群管理角色 ClusterAdministartor Roles:clusterAdmin、clusterManager、clusterMo ...
Python科学计算库Numpy之 算数操作
NumPy - 算数函数
很容易理解的是,NumPy 包含大量的各种数学运算功能。 NumPy 提供标准的三角函数,算术运算的函数,复数处理函数等。
import numpy as np
a = np.array([0, 30, 45, 60, 90])
print(np.sin(a * np.pi / 180)) # 不同角度的正弦值
print(np.cos(a * np.pi / 180)) # 数组中角度的余弦值
print(np.tan(a * np.pi / 180)) # 数组中角度的正切值
‘’’
arcsin,arccos,和arctan函数返回给定角度的sin,cos和tan的反三角函数。 这些函数的结果可以通过numpy.degrees()函数通过将弧度制转换为角度制来验证
‘’’
print(np.degrees(np.arcsin(np.sin(a * np.pi / 180)))) # 计算角度的反正弦 转化为角度制
print(np.degrees(np.arccos(np.cos(a * np.pi / 180)))) # 计算角度的反余弦 转 ...
Mongodb3.2.12 副本集 + 分片 完整安装
1.安装准备
MongoDB安装包:mongodb-Linux-x86_64-rhel70-3.2.8.tgz
下载地址:https://www.mongodb.com/download-center#previous
下载MongoDB安装,选择Community Server选项,选中RHEL 6 Linux 64-bit版本下载。
2.解压MongoDB安装包
[hadoop@new-cdh9 Tools]$ tar -zxvf mongodb-linux-x86_64-amazon-3.2.12.tgz
mongodb-linux-x86_64-amazon-3.2.12/README
mongodb-linux-x86_64-amazon-3.2.12/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-amazon-3.2.12/MPL-2
mongodb-linux-x86_64-amazon-3.2.12/GNU-AGPL-3.0
mongodb-linux-x86_64-amazon-3.2.12/bin/mongodump
m ...
Python科学计算库Numpy之 字符串操作
NumPy - 字符串函数
以下函数用于对dtype为numpy.string_或numpy.unicode_的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。
序号
函数及描述
add() 返回两个str或Unicode数组的逐个字符串连接
multiply() 返回按元素多重连接后的字符串
center() 返回给定字符串的副本,其中元素位于特定字符串的中央
capitalize() 返回给定字符串的副本,其中只有第一个字符串大写
title() 返回字符串或 Unicode 的按元素标题转换版本
lower() 返回一个数组,其元素转换为小写
upper() 返回一个数组,其元素转换为大写
split() 返回字符串中的单词列表,并使用分隔符来分割
splitlines() 返回元素中的行列表,以换行符分割
strip() 返回数组副本,其中元素移除了开头或者结尾处的特定字符
join() 返回一个字符串,它是序列中字符串的连接
replace() 返回字符串的副本,其中所有子字 ...