当前位置:首页>python>NumPy库——Python数据科学的基石

NumPy库——Python数据科学的基石

  • 2026-02-26 00:52:35
NumPy库——Python数据科学的基石

NumPy(Numerical Python)是Python科学计算的核心库。它提供了一个高性能的多维数组对象 ndarray 以及用于处理这些数组的工具。无论是数据分析、机器学习还是图像处理,NumPy都是不可或缺的底层支撑。


一、为什么选择NumPy?(高效性分析)

1.1 Python原生循环的瓶颈

在Python中,使用原生 for 循环处理大量数据时,由于动态类型检查和解释器开销,速度非常慢。

【代码实践】对比测试:

import numpy as np
import time

生成100万个数据
data_list = list(range(1000000))
data_array = np.arange(1000000)

测试Python原生循环
start_time = time.time()
result_list = [x * 2for x in data_list]
end_time = time.time()
print(f"Python列表推导式耗时{end_time - start_time:.4f}")

测试NumPy向量化运算
start_time = time.time()
result_array = data_array * 2
end_time = time.time()
print(f"NumPy向量化运算耗时{end_time - start_time:.4f}")

验证结果一致性
print(f"结果一致{np.allclose(result_list, result_array)}")

运行结果示例
Python列表推导式耗时: 0.0800 秒
NumPy向量化运算耗时: 0.0020 秒
结论:NumPy的速度通常是原生Python的几十倍甚至上百倍。

1.2 NumPy高效的三大秘诀

  1. 底层C语言实现
    :核心算法由C编写,绕过了解释器循环。
  2. 内存连续性
    :数组元素在内存中连续存储,且类型统一(如全是 int32),减少了内存碎片和类型判断开销。
  3. 向量化(Vectorization)
    :将循环操作转化为底层的SIMD(单指令多数据)指令集并行执行。

二、NumPy数组的创建方法

2.1 从Python列表创建

import numpy as np

从列表创建
arr1 = np.array([1234])
arr2 = np.array([[12], [34]], dtype=float指定数据类型为浮点型

print(f"一维数组{arr1}")
print(f"二维数组:\n{arr2}")
print(f"数据类型{arr2.dtype}")

2.2 初始化特定数组

NumPy提供了多种快速生成特定模式数组的函数。

函数
描述
代码示例
输出形状/内容
np.zeros
全零数组
np.zeros((3, 4))
3行4列的0
np.ones
全一数组
np.ones((2, 2), dtype=int)
2x2的整数1
np.full
填充指定值
np.full((2, 2), 7)
2x2的全7数组
np.eye
单位矩阵
np.eye(3)
3x3对角线为1
np.arange
等差数列
np.arange(0, 10, 2)[0, 2, 4, 6, 8]
np.linspace
等间隔数列
np.linspace(0, 1, 5)[0., 0.25, 0.5, 0.75, 1.]
np.logspace
等比数列
np.logspace(0, 2, 3)[1, 10, 100]
 (100到102)

【代码实践】:

创建一个3x3的单位矩阵
identity = np.eye(3)
print("单位矩阵:\n", identity)

创建从01均匀分布的5个数
linear = np.linspace(015)
print("线性空间:", linear)

2.3 随机数组生成

np.random 模块是模拟数据和初始化的利器。

设置随机种子,保证结果可复现
np.random.seed(42)

# 1. 均匀分布 [0, 1)
rand_arr = np.random.rand(23
print("均匀分布:\n", rand_arr)

# 2. 标准正态分布 (均值0, 方差1)
randn_arr = np.random.randn(22)
print("正态分布:\n", randn_arr)

# 3. 随机整数 [low, high)
randint_arr = np.random.randint(110, size=(23))
print("随机整数:\n", randint_arr)

# 4. 随机重排 (不改变原数组,返回新数组)
perm_arr = np.random.permutation([12345])
print("随机重排:", perm_arr)

# 5. 随机采样 (有放回/无放回)
 [0, 1, 2, 3] 中随机选2个,概率分别为 [0.1, 0.1, 0.4, 0.4]
choice_arr = np.random.choice([0123], size=2, p=[0.10.10.40.4])
print("加权采样:", choice_arr)

三、数组的属性与核心操作

3.1 基础属性

arr = np.array([[123], [456]])

print(f"形状 (shape): {arr.shape}")   # (2, 3) -> 23
print(f"维度 (ndim): {arr.ndim}")     # 2
print(f"元素总数 (size): {arr.size}"# 6
print(f"数据类型 (dtype): {arr.dtype}"# int32  int64

3.2 索引与切片(重点)

NumPy的切片返回的是视图(View),修改切片会影响原数组。如果需要副本,请使用 .copy()

【代码实践】:

data = np.arange(110).reshape(33)
# data = [[1, 2, 3],
#         [4, 5, 6],
#         [7, 8, 9]]

# 1. 基本索引:取第2行第3列的元素 (索引从0开始)
val = data[12
print(f"特定元素{val}"# 6

# 2. 切片:取前两行,所有列
sub_arr = data[:2, :] 
print("前两行:\n", sub_arr)

# 3. 步长切片:取所有行,每隔一列取一个 (02...)
step_arr = data[:, ::2]
print("隔列取样:\n", step_arr)

# 4. 视图特性验证
view = data[0:10:1]
view[00] = 999
print(f"修改视图后原数组:\n{data}"原数组第一个元素也会变成999

# 5. 获取副本
copy_arr = data[0:10:1].copy()
copy_arr[00] = 0
print(f"修改副本后原数组不变:\n{data}"

3.3 数组变形(Reshape)

改变数组形状,但元素总数必须一致。

arr = np.arange(17# [1, 2, 3, 4, 5, 6]

变为 23
reshaped = arr.reshape(23)
print("重塑后:\n", reshaped)

增加维度 (一维转二维列向量)
col_vec = arr[np.newaxis, :] 或者 arr.reshape(1, -1)
print("行向量形状:", col_vec.shape) # (1, 6)

展平
flat = reshaped.ravel() 返回视图
flat_copy = reshaped.flatten() 返回副本
print("展平:", flat)

3.4 拼接与分裂

a = np.array([[12], [34]])
b = np.array([[56], [78]])

# 1. 垂直拼接 (上下叠放) -> axis=0
v_stack = np.vstack((a, b))
或者 np.concatenate((a, b), axis=0)
print("垂直拼接:\n", v_stack)

# 2. 水平拼接 (左右并排) -> axis=1
h_stack = np.hstack((a, b))
或者 np.concatenate((a, b), axis=1)
print("水平拼接:\n", h_stack)

# 3. 分裂
 v_stack 沿行方向平均分成2
split_arr = np.vsplit(v_stack, 2)
print("分裂结果1:\n", split_arr[0])

四、NumPy四大运算体系

4.1 向量化运算(元素级)

直接对数组整体进行数学运算,无需循环。

arr = np.array([1234])

print("加法:", arr + 10)       # [11, 12, 13, 14]
print("平方:", arr ** 2)       # [1, 4, 9, 16]
print("正弦:", np.sin(arr))    对每个元素求sin
print("比较:", arr > 2)        # [False, False, True, True]

4.2 矩阵化运算(线性代数)

区分 元素乘法 (*) 和 矩阵乘法 (dot 或 @)

A = np.array([[12], [34]])
B = np.array([[56], [78]])

元素对应相乘
elem_mult = A * B 
# [[1*5, 2*6], [3*7, 4*8]] = [[5, 12], [21, 32]]
print("元素乘法:\n", elem_mult)

矩阵乘法 (行乘列)
mat_mult = np.dot(A, B) 
或者 A @ B
第一行第一列: 1*5 + 2*7 = 19
print("矩阵乘法:\n", mat_mult)

转置
print("A的转置:\n", A.T)

4.3 广播机制(Broadcasting)

当两个数组形状不同时,NumPy会自动扩展较小的数组以匹配较大的数组,前提是满足广播规则:

  1. 维度对齐(从后往前)。
  2. 对应维度长度相等,或其中一个为1。

【图解案例】:

场景1:标量与数组
arr = np.array([123])
print(arr + 5# 5被广播为 [5, 5, 5] -> [6, 7, 8]

场景2(3, 3)  (1, 3)
matrix = np.ones((33))
row_vec = np.array([012]) 形状 (3,) 被视为 (1, 3)
result = matrix + row_vec
# row_vec 被复制3次变成 (3, 3) 然后相加
print("广播相加:\n", result)

场景3:外积效果 (3, 1) + (1, 3) -> (3, 3)
col_vec = np.array([[0], [10], [20]]) 形状 (3, 1)
row_vec = np.array([012])         形状 (3,) -> (1, 3)
outer_sum = col_vec + row_vec
print("外积式广播:\n", outer_sum)
结果:
# [[ 0,  1,  2],
#  [10, 11, 12],
#  [20, 21, 22]]

4.4 比较运算与布尔掩码

利用布尔数组筛选数据,是数据清洗的核心技巧。

data = np.random.randint(010, size=(34))
print("原始数据:\n", data)

# 1. 生成布尔掩码
mask = data > 5
print("大于5的掩码:\n", mask)

# 2. 统计满足条件的个数
count = np.sum(mask)
print(f"大于5的元素个数{count}")

# 3. 筛选数据 (返回一维数组)
filtered = data[data > 5]
print(f"大于5的元素集合{filtered}")

# 4. 原地修改满足条件的值
data[data > 5] = -1
print("将大于5的值替换为-1:\n", data)

五、花哨索引(Fancy Indexing)

与普通切片不同,花哨索引通过传入索引数组来访问数据,返回的永远是副本

5.1 一维花哨索引

arr = np.array([1020304050])
indices = [024]

提取第0, 2, 4个元素
result = arr[indices]
print(result) # [10, 30, 50]

5.2 二维花哨索引

需要同时提供行索引数组和列索引数组,它们会配对使用。

matrix = np.arange(110).reshape(33)
# matrix = [[1, 2, 3],
#           [4, 5, 6],
#           [7, 8, 9]]

想要提取 (0, 1), (1, 2), (2, 0) 这三个位置的元素 -> 对应值 2, 6, 7
rows = [012]
cols = [120]

result = matrix[rows, cols]
print(f"花哨索引结果{result}"# [2, 6, 7]

结合广播:选取特定行和特定列的笛卡尔积(需配合np.ix_
选取第0行和第2行,以及第1列和第2列的交叉点
sub_matrix = matrix[np.ix_([02], [12])]
print("子矩阵:\n", sub_matrix)
输出:
# [[2, 3],
#  [8, 9]]

六、常用通用函数(Universal Functions)

6.1 排序

arr = np.array([3141592])

# 1. 返回排序后的副本
sorted_arr = np.sort(arr)
print("排序后:", sorted_arr)

# 2. 原地排序
arr.sort()
print("原地排序后:", arr)

# 3. 获取排序后的索引位置 (argsort)
original = np.array([301020])
indices = np.argsort(original) 
最小值10在原索引1,次小20在索引2...
print("排序索引:", indices) # [1, 2, 0]
print("通过索引还原排序:", original[indices]) # [10, 20, 30]

6.2 统计函数与轴(Axis)的概念

axis=0 代表跨行操作(即按列计算),axis=1 代表跨列操作(即按行计算)。

data = np.array([[123],
                 [456]])

全局统计
print("总和:", np.sum(data)) # 21
print("均值:", np.mean(data)) # 3.5

按轴统计
print("每列的和 (axis=0):", np.sum(data, axis=0)) # [5, 7, 9] -> 1+4, 2+5, 3+6
print("每行的和 (axis=1):", np.sum(data, axis=1)) # [6, 15]  -> 1+2+3, 4+5+6

其他常用统计
print("最大值:", np.max(data))
print("最大值索引:", np.argmax(data)) 展平后的索引
print("标准差:", np.std(data))
print("中位数:", np.median(data))

七、综合实战案例:模拟学生成绩分析

假设我们有一个班级5名学生的3门课成绩(语文、数学、英语)。

import numpy as np

# 1. 生成模拟数据 (53),分数在60-100之间
np.random.seed(100)
scores = np.random.randint(60101, size=(53))
subjects = ['语文''数学''英语']
students = ['张三''李四''王五''赵六''孙七']

print("=== 原始成绩表 ===")
print(f"{'姓名':<6}{'语文':<6}{'数学':<6}{'英语':<6}")
for i, name inenumerate(students):
print(f"{name:<6}{scores[i][0]:<6}{scores[i][1]:<6}{scores[i][2]:<6}")

# 2. 计算每个学生的平均分 (按行计算 axis=1)
avg_scores = np.mean(scores, axis=1)
print("\n=== 学生平均分 ===")
for name, avg inzip(students, avg_scores):
print(f"{name}{avg:.2f}")

# 3. 计算每门课的最高分 (按列计算 axis=0)
max_scores = np.max(scores, axis=0)
print("\n=== 各科最高分 ===")
for subj, max_s inzip(subjects, max_scores):
print(f"{subj}{max_s}")

# 4. 找出所有数学成绩大于85分的学生姓名
math_col = scores[:, 1提取数学列
high_math_mask = math_col > 85
high_math_students = np.array(students)[high_math_mask]
print(f"\n数学成绩大于85分的学生{high_math_students}")

# 5. 给所有低于65分的成绩加分至65 (及格线保护)
scores[scores < 65] = 65
print("\n=== 补考加分后的第一行数据 ===")
print(f"{students[0]}{scores[0]}")

回顾

  1. 效率:NumPy利用C底层和向量化,比Python循环快数十倍。
  2. 对象:ndarray 是核心,注意其 shapedtypendim 属性。
  3. 操作:掌握切片(视图)、变形(reshape)、拼接(concatenate)和广播机制。
  4. 运算:分清元素运算(*)与矩阵运算(dot/@),善用布尔掩码筛选数据。
  5. 统计:理解 axis 参数,熟练使用 summeansortargsort

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 08:58:20 HTTP/2.0 GET : https://f.mffb.com.cn/a/477127.html
  2. 运行时间 : 0.169652s [ 吞吐率:5.89req/s ] 内存消耗:4,768.83kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=aa424c517f235543ae9fbe060eaac1d9
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000731s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000626s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000256s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000285s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000468s ]
  6. SELECT * FROM `set` [ RunTime:0.000203s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000488s ]
  8. SELECT * FROM `article` WHERE `id` = 477127 LIMIT 1 [ RunTime:0.000475s ]
  9. UPDATE `article` SET `lasttime` = 1772240300 WHERE `id` = 477127 [ RunTime:0.014656s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.004989s ]
  11. SELECT * FROM `article` WHERE `id` < 477127 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000506s ]
  12. SELECT * FROM `article` WHERE `id` > 477127 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002747s ]
  13. SELECT * FROM `article` WHERE `id` < 477127 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000996s ]
  14. SELECT * FROM `article` WHERE `id` < 477127 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015141s ]
  15. SELECT * FROM `article` WHERE `id` < 477127 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001343s ]
0.171227s