机器学习中数据处理与可视化的python、numpy等常用函数

简介: 写在前面:本文所针对的python版本为python3.0以上!np.tile()tile()相当于复制当前行元素或者列元素import numpy as npm1 = np.

写在前面:本文所针对的python版本为python3.0以上!


np.tile()

tile()相当于复制当前行元素或者列元素

import numpy as np

m1 = np.array([1, 2, 3, 4])
# 行复制两次,列复制一次到一个新数组中
print(np.tile(m1, (2, 1)))
print("===============")
# 行复制一次,列复制两次到一个新数组中
print(np.tile(m1, (1, 2)))
print("===============")
# 行复制两次,列复制两次到一个新数组中
print(np.tile(m1, (2, 2)))

输出:

D:\Python\python.exe E:/ML_Code/test_code.py
[[1 2 3 4]
 [1 2 3 4]]
===============
[[1 2 3 4 1 2 3 4]]
===============
[[1 2 3 4 1 2 3 4]
 [1 2 3 4 1 2 3 4]]

sum()

sum函数是对元素进行求和,对于二维数组以上则可以根据参数axis进行分别对行和列进行求和,axis=0代表按列求和,axis=1代表行求和。

import numpy as np

m1 = np.array([1, 2, 3, 4])
# 元素逐个求和
print(sum(m1))

m2 = np.array([[6, 2, 2, 4], [1, 2, 4, 7]])
# 按列相加
print(m2.sum(axis=0))
# 按行相加
print(m2.sum(axis=1))

输出:

D:\Python\python.exe E:/ML_Code/test_code.py
10
[ 7  4  6 11]
[14 14]

Process finished with exit code 0

shape和reshape

import numpy as np

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

b = np.reshape(a, 6)
print(b)

# -1是根据数组大小进行维度的自动推断
c = np.reshape(a, (3, -1))  # 为指定的值将被推断出为2
print(c)

输出:

D:\python-3.5.2\python.exe E:/ML_Code/test_code.py

(2, 3)

---

[1 2 3 4 5 6]

---

[[1 2]
 [3 4]
 [5 6]]

numpy.random.rand

import numpy as np

# 创建一个给定类型的数组,将其填充在一个均匀分布的随机样本[0, 1)中

print(np.random.rand(3))

print(np.random.rand(2, 2))

输出:

D:\python-3.5.2\python.exe E:/ML_Code/test_code.py

[ 0.03568079  0.68235136  0.64664722]

---

[[ 0.43591417  0.66372315]
 [ 0.86257381  0.63238434]]

zip()

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

import numpy as np

a1 = np.array([1, 2, 3, 4])
a2 = np.array([11, 22, 33, 44])

z = zip(a1, a2)

print(list(z))

输出:

D:\Python\python.exe E:/ML_Code/test_code.py
[(1, 11), (2, 22), (3, 33), (4, 44)]

Process finished with exit code 0

注意点:在python 3以后的版本中zip()是可迭代对象,使用时必须将其包含在一个list中,方便一次性显示出所有结果。否则会报如下错误:

<zip object at 0x01FB2E90>

矩阵相关

import numpy as np

# 生成随机矩阵
myRand = np.random.rand(3, 4)
print(myRand)

# 生成单位矩阵
myEye = np.eye(3)
print(myEye)

from numpy import *

# 矩阵所有元素求和
myMatrix = mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(sum(myMatrix))

# 计算矩阵的秩
print(linalg.det(myMatrix))

# 计算矩阵的逆
print(linalg.inv(myMatrix))

注意:

from numpy import *
import numpy as np

vector1 = mat([[1, 2], [1, 1]])
vector2 = mat([[1, 2], [1, 1]])
vector3 = np.array([[1, 2], [1, 1]])
vector4 = np.array([[1, 2], [1, 1]])

# Python自带的mat矩阵的运算规则是两者都按照矩阵乘法的规则来运算
print(vector1 * vector2)

# Python自带的mat矩阵的运算规则是两者都按照矩阵乘法的规则来运算
print(dot(vector1, vector2))

# numpy乘法运算中"*"是数组元素逐个计算
print(vector3 * vector4)

# numpy乘法运算中dot是按照矩阵乘法的规则来运算
print(dot(vector3, vector4))

输出:

D:\python-3.5.2\python.exe D:/PyCharm/py_base/py_numpy.py
[[3 4]
 [2 3]]
 ---
[[3 4]
 [2 3]]
 ---
[[1 4]
 [1 1]]
 ---
[[3 4]
 [2 3]]

向量相关

两个n维向量A(X11,X12,X13,...X1n)B(X21,X22,X23,...X2n)之间的欧式距离为:

d12=k=1n(x1kx2k)2

表示成向量运算的形式:

d12=(AB)(AB)T
from numpy import *

# 计算两个向量的欧氏距离

vector1 = mat([1, 2])
vector2 = mat([3, 4])
print(sqrt((vector1 - vector2) * ((vector1 - vector2).T)))

概率相关

from numpy import *
import numpy as np

arrayOne = np.array([[1, 2, 3, 4, 5], [7, 4, 3, 3, 3]])

# 计算第一列的平均数
mv1 = mean(arrayOne[0])

# 计算第二列的平均数
mv2 = mean(arrayOne[1])

# 计算第一列的标准差
dv1 = std(arrayOne[0])

# 计算第二列的标准差
dv2 = std(arrayOne[1])

print(mv1)
print(mv2)
print(dv1)
print(dv2)
相关文章
|
22天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
412 1
|
23天前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
229 0
|
23天前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
91 0
|
15天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
24天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
3月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
250 1
|
3月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
2月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
2月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
109 0
|
4月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务