NumPy数据分析与图像处理实战

NumPy 数据分析基础

NumPy的核心是多维数组对象ndarray,支持高效的数值运算。创建数组可通过np.array()np.arange()np.zeros()等函数实现。例如,生成随机数组:

import numpy as np
data = np.random.randn(100, 3)  # 100行3列的随机数组

数组的广播机制允许不同形状数组进行运算。例如标量与数组相乘会自动扩展:

arr = np.array([1, 2, 3])
result = arr * 5  # 结果为[5, 10, 15]

统计与聚合操作

NumPy提供np.sum()np.mean()等聚合函数。沿特定轴计算时可指定axis参数:

matrix = np.array([[1, 2], [3, 4]])
col_sum = np.sum(matrix, axis=0)  # 结果为[4, 6]

布尔索引能快速筛选数据。例如找出大于阈值的元素:

arr = np.array([5, 2, 8, 1])
mask = arr > 3
filtered = arr[mask]  # 结果为[5, 8]

图像处理基础技术

图像可视为三维数组(高度×宽度×通道)。使用matplotlib加载并显示图像:

import matplotlib.pyplot as plt
image = plt.imread('photo.jpg')
plt.imshow(image)

颜色通道分离与合并示例:

red_channel = image[:, :, 0]
merged = np.stack([red_channel, green_channel, blue_channel], axis=2)

图像滤波与变换

高斯模糊可通过scipy.ndimage实现:

from scipy.ndimage import gaussian_filter
blurred = gaussian_filter(image, sigma=2)

矩阵运算实现图像旋转(需齐次坐标变换):

theta = np.radians(30)
rotation_matrix = np.array([
    [np.cos(theta), -np.sin(theta), 0],
    [np.sin(theta),  np.cos(theta), 0],
    [0,             0,              1]
])

性能优化技巧

使用np.vectorize()加速Python函数:

def custom_func(x):
    return x**2 + 1
vec_func = np.vectorize(custom_func)

内存布局优化可通过np.ascontiguousarray()实现:

contig_arr = np.ascontiguousarray(arr, dtype=np.float32)

实际应用案例

时间序列分析中滑动窗口计算:

def moving_average(data, window_size):
    return np.convolve(data, np.ones(window_size)/window_size, mode='valid')

图像直方图均衡化增强对比度:

def hist_equalize(img):
    hist, bins = np.histogram(img.flatten(), 256, [0,256])
    cdf = hist.cumsum()
    cdf_normalized = cdf * 255 / cdf[-1]
    return np.interp(img.flatten(), bins[:-1], cdf_normalized).reshape(img.shape)

BbS.okapop143.sbs/PoSt/1122_592085.HtM
BbS.okapop144.sbs/PoSt/1122_314505.HtM
BbS.okapop145.sbs/PoSt/1122_669515.HtM
BbS.okapop146.sbs/PoSt/1122_891148.HtM
BbS.okapop147.sbs/PoSt/1122_869716.HtM
BbS.okapop148.sbs/PoSt/1122_361058.HtM
BbS.okapop149.sbs/PoSt/1122_015024.HtM
BbS.okapop150.sbs/PoSt/1122_062655.HtM
BbS.okapop151.sbs/PoSt/1122_528258.HtM
BbS.okapop152.sbs/PoSt/1122_419068.HtM
BbS.okapop143.sbs/PoSt/1122_002466.HtM
BbS.okapop144.sbs/PoSt/1122_165629.HtM
BbS.okapop145.sbs/PoSt/1122_542594.HtM
BbS.okapop146.sbs/PoSt/1122_907925.HtM
BbS.okapop147.sbs/PoSt/1122_278922.HtM
BbS.okapop148.sbs/PoSt/1122_363154.HtM
BbS.okapop149.sbs/PoSt/1122_995807.HtM
BbS.okapop150.sbs/PoSt/1122_120094.HtM
BbS.okapop151.sbs/PoSt/1122_415011.HtM
BbS.okapop152.sbs/PoSt/1122_733960.HtM
BbS.okapop143.sbs/PoSt/1122_343514.HtM
BbS.okapop144.sbs/PoSt/1122_290527.HtM
BbS.okapop145.sbs/PoSt/1122_333759.HtM
BbS.okapop146.sbs/PoSt/1122_893091.HtM
BbS.okapop147.sbs/PoSt/1122_554617.HtM
BbS.okapop148.sbs/PoSt/1122_324184.HtM
BbS.okapop149.sbs/PoSt/1122_665075.HtM
BbS.okapop150.sbs/PoSt/1122_272863.HtM
BbS.okapop151.sbs/PoSt/1122_464906.HtM
BbS.okapop152.sbs/PoSt/1122_057749.HtM
BbS.okapop143.sbs/PoSt/1122_122855.HtM
BbS.okapop144.sbs/PoSt/1122_476619.HtM
BbS.okapop145.sbs/PoSt/1122_347107.HtM
BbS.okapop146.sbs/PoSt/1122_400276.HtM
BbS.okapop147.sbs/PoSt/1122_327568.HtM
BbS.okapop148.sbs/PoSt/1122_700132.HtM
BbS.okapop149.sbs/PoSt/1122_682855.HtM
BbS.okapop150.sbs/PoSt/1122_716663.HtM
BbS.okapop151.sbs/PoSt/1122_059276.HtM
BbS.okapop152.sbs/PoSt/1122_317385.HtM
BbS.okapop143.sbs/PoSt/1122_937676.HtM
BbS.okapop144.sbs/PoSt/1122_759536.HtM
BbS.okapop145.sbs/PoSt/1122_584699.HtM
BbS.okapop146.sbs/PoSt/1122_066510.HtM
BbS.okapop147.sbs/PoSt/1122_765109.HtM
BbS.okapop148.sbs/PoSt/1122_095999.HtM
BbS.okapop149.sbs/PoSt/1122_011643.HtM
BbS.okapop150.sbs/PoSt/1122_318276.HtM
BbS.okapop151.sbs/PoSt/1122_044200.HtM
BbS.okapop152.sbs/PoSt/1122_945340.HtM
BbS.okapop143.sbs/PoSt/1122_812705.HtM
BbS.okapop144.sbs/PoSt/1122_807777.HtM
BbS.okapop145.sbs/PoSt/1122_149340.HtM
BbS.okapop146.sbs/PoSt/1122_015704.HtM
BbS.okapop147.sbs/PoSt/1122_890828.HtM
BbS.okapop148.sbs/PoSt/1122_062065.HtM
BbS.okapop149.sbs/PoSt/1122_741386.HtM
BbS.okapop150.sbs/PoSt/1122_886842.HtM
BbS.okapop151.sbs/PoSt/1122_715139.HtM
BbS.okapop152.sbs/PoSt/1122_662540.HtM
BbS.okapop153.sbs/PoSt/1122_822951.HtM
BbS.okapop154.sbs/PoSt/1122_136165.HtM
BbS.okapop155.sbs/PoSt/1122_079860.HtM
BbS.okapop156.sbs/PoSt/1122_603516.HtM
BbS.okapop157.sbs/PoSt/1122_800177.HtM
BbS.okapop158.sbs/PoSt/1122_993217.HtM
BbS.okapop159.sbs/PoSt/1122_772338.HtM
BbS.okapop160.sbs/PoSt/1122_926908.HtM
BbS.okapop161.sbs/PoSt/1122_886405.HtM
BbS.okapop162.sbs/PoSt/1122_798229.HtM
BbS.okapop153.sbs/PoSt/1122_629135.HtM
BbS.okapop154.sbs/PoSt/1122_178212.HtM
BbS.okapop155.sbs/PoSt/1122_184919.HtM
BbS.okapop156.sbs/PoSt/1122_481113.HtM
BbS.okapop157.sbs/PoSt/1122_828631.HtM
BbS.okapop158.sbs/PoSt/1122_067037.HtM
BbS.okapop159.sbs/PoSt/1122_363682.HtM
BbS.okapop160.sbs/PoSt/1122_580313.HtM
BbS.okapop161.sbs/PoSt/1122_060510.HtM
BbS.okapop162.sbs/PoSt/1122_315946.HtM

#牛客AI配图神器#

全部评论

相关推荐

用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务