【Numpy】练习题100道(76-100题完结)

🌻个人主页:相洋同学
🥇学习在于行动、总结和坚持,共勉!

#学习笔记#

Git-hub链接

题目列表(题解往下翻)

76.考虑一个一维数组Z,构建一个二维数组,其第一行为(Z[0],Z[1],Z[2]),每个后续行都向右移动1个位置(最后一行应为(Z[-3],Z[-2],Z[-1]))(★★★)

77.如何对一个布尔值取反,或者改变一个浮点数的符号?(★★★)

78.考虑两组点P0,P1描述的线(2D)和一个点p,如何计算点p到每条线i (P0[i],P1[i])的距离?(★★★)

79.考虑两组点P0,P1描述的线(2D)和一组点P,如何计算每个点j (P[j])到每条线i (P0[i],P1[i])的距离?(★★★)

80.考虑一个任意数组,编写一个函数提取一个固定形状的子部分,且以一个给定元素为中心(必要时用fill值填充)(★★★)

81.考虑一个数组Z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14],如何生成一个数组R = [[1,2,3,4], [2,3,4,5], [3,4,5,6], ..., [11,12,13,14]]?(★★★)

82.计算一个矩阵的秩(★★★)

83.如何找到数组中出现频率最高的值?

84.从一个随机的10x10矩阵中提取所有连续的3x3块(★★★)

85.创建一个2D数组子类,使得Z[i,j] == Z[j,i](★★★)

86.考虑一组p个形状为(n,n)的矩阵和一组p个形状为(n,1)的向量。如何一次性计算p个矩阵乘积的和?(结果的形状为(n,1))(★★★)

87.考虑一个16x16的数组,如何得到块求和(块大小为4x4)?(★★★)

88.如何使用numpy数组实现生命游戏?(★★★)

89.如何获取一个数组的n个最大值(★★★)

90.给定任意数量的向量,构建笛卡尔积(每个项的每种组合)(★★★)

91.如何从常规数组创建记录数组?(★★★)

92.考虑一个大向量Z,使用3种不同方法计算Z的三次方(★★★)

93.考虑两个形状为(8,3)和(2,2)的数组A和B。如何找到A的行,这些行包含B的每行的元素,不考虑B中元素的顺序?(★★★)

94.考虑一个10x3的矩阵,提取具有不等值的行(例如[2,2,3])(★★★)

95.将一个整数向量转换为矩阵的二进制表示形式(★★★)

96.给定一个二维数组,如何提取唯一的行?(★★★)

97.考虑2个向量A和B,编写内积、外积、求和和乘法函数的einsum等价形式(★★★)

98.考虑由两个向量(X,Y)描述的路径,如何使用等距样本对其进行采样?(★★★)

99.给定一个整数n和一个2D数组X,从X中选择可以解释为具有n度的多项式分布抽样的行,即,只包含整数且总和为n的行。(★★★)

100.对于一个1D数组X的平均值,计算其引导式95%置信区间(即,用替换的方式重采样数组元素N次,计算每个样本的平均值,然后计算平均值的百分位数)。(★★★)

题目解析

76.考虑一个一维数组Z,构建一个二维数组,其第一行为(Z[0],Z[1],Z[2]),每个后续行都向右移动1个位置(最后一行应为(Z[-3],Z[-2],Z[-1]))(★★★)

# 通过numpy库来解决,使用stride_tricks技巧
# np.lib.stride_tricks.as_strided函数允许我们在数组上使用给定的步长来创建新视图,而不实际复制数据
# 通过切片的方式也可以解决,但是这种方法会复制数据,对大数组来说效率较低。总体来说numpy就是为了高效计算而创建的 
import numpy as np
from numpy.lib.stride_tricks import as_strided
vector = np.arange(10)
# [0,1,2,3,4,5,6,7,8,9]window_size = 3
shape = (len(vector) - window_size + 1, window_size) # output shape
strides = vector.strides + vector.strides         #步长
result = as_strided(vector,shape = shape, strides=strides)
result
# array([[0, 1, 2],
#        [1, 2, 3],
#        [2, 3, 4],
#        [3, 4, 5],
#        [4, 5, 6],
#        [5, 6, 7],
#        [6, 7, 8],
#        [7, 8, 9]])

77.如何对一个布尔值取反,或者改变一个浮点数的符号?(★★★)

# 取反
bool_arry = np.array([True, False, True, True, False])
negated_bool_arry = np.logical_not(bool_arry)
print(negated_bool_arry)
# 结果:[False  True False False  True]

78.考虑两组点P0,P1描述的线(2D)和一个点p,如何计算点p到每条线i (P0[i],P1[i])的距离?(★★★)

# 两种情况:有限长度的线段和无限直线
# 生成两组点
P0 = np.random.rand(10,2)
P1 = np.random.rand(10,2)
p = np.array([0,0])# 计算每个点到每条线的距离
def distance_point_to_line(P0,P1,p):# 计算线段方向向量d = P0 - P1# 计算p到每个P0的向量p0 = p - P0# 计算p在每条线段方向向量上的投影长度/向量d的长度t = np.sum(d*p0,axis=1)/np.sum(d*d,axis=1) # 代表了p0在d上投影的长度与d长度的比例# 将投影长度限制在0-1之间,以保证投影点在线段上t = np.clip(t,0,1).reshape(-1,1)# 计算投影点projection = P0 + t*d# 计算p到投影点的距离向量distance_vectors = p - projection# 计算并返回距离distance = np.sqrt(np.sum(distance_vectors*distance_vectors,axis=1))return distance

79.考虑两组点P0,P1描述的线(2D)和一组点P,如何计算每个点j (P[j])到每条线i (P0[i],P1[i])的距离?(★★★)

# 生成两组点
import numpy as np
P0 = np.random.rand(10,2)
P1 = np.random.rand(10,2)
P = np.random.rand(10,2)
def distance_point_to_line(P0,P1,P):# 计算线段方向向量d = P0 - P1# 计算p到每个P0的向量p0 = P - P0# 计算p在每条线段方向向量上的投影长度/向量d的长度t = np.sum(d*p0,axis=1)/np.sum(d*d,axis=1) # 代表了p0在d上投影的长度与d长度的比例# 将投影长度限制在0-1之间,以保证投影点在线段上t = np.clip(t,0,1).reshape(-1,1)# 计算投影点projection = P0 + t*d# 计算p到投影点的距离向量distance_vectors = P - projection# 计算并返回距离distance = np.sqrt(np.sum(distance_vectors*distance_vectors,axis=1))return distance

80.考虑一个任意数组,编写一个函数提取一个固定形状的子部分,且以一个给定元素为中心(必要时用fill值填充)(★★★)

def extract_subarray_with_fill(arr, shape, center, fill=0):"""从一个给定数组中提取一个以特定元素为中心的固定形状的子数组。如果子数组超出原数组的边界,则使用fill值进行填充。参数:- arr: 原始数组。- shape: 目标子数组的形状(tuple)。- center: 子数组中心元素的索引(tuple)。- fill: 用于填充超出边界部分的值。返回:- 提取(并可能填充)后的子数组。"""r, c = shapex, y = centerr_half, c_half = r // 2, c // 2start_x, start_y = max(0, x - r_half), max(0, y - c_half)end_x, end_y = min(arr.shape[0], x + r_half + 1), min(arr.shape[1], y + c_half + 1)extracted = arr[start_x:end_x, start_y:end_y]if extracted.shape != shape:# 创建填充数组filled = np.full(shape, fill, dtype=arr.dtype)# 计算填充偏移offset_x, offset_y = -min(0, x - r_half), -min(0, y - c_half)filled[offset_x:offset_x+extracted.shape[0], offset_y:offset_y+extracted.shape[1]] = extractedreturn filledreturn extracted# 示例使用
arr = np.random.randint(1, 10, size=(5, 5))
shape = (3, 3)
center = (1, 1)
fill = 0subarray = extract_subarray_with_fill(arr, shape, center, fill)
print(subarray)

81.考虑一个数组Z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14],如何生成一个数组R = [[1,2,3,4], [2,3,4,5], [3,4,5,6], ..., [11,12,13,14]]?(★★★)

# 同第76题使用滑动窗口
from numpy.lib.stride_tricks import as_strided
vector = np.arange(1, 15)
# [1,2,3,4,5,6,7,8,9,10,11,12,13,14]window_size = 4
shape = (len(vector) - window_size + 1, window_size) # output shape
strides = vector.strides + vector.strides         #步长
result = as_strided(vector,shape = shape, strides=strides)
result
# 1,2,3,4
# 2,3,4,5
# 3,4,5,6
# 4,5,6,7
# 5,6,7,8
# 6,7,8,9
# 7,8,9,10
# 8,9,10,11
# 9,10,11,12
# 10,11,12,13
# 11,12,13,14

82.计算一个矩阵的秩(★★★)

# 定义一个矩阵
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 计算矩阵的秩
rank = np.linalg.matrix_rank(A)print("矩阵的秩是:", rank)

83.如何找到数组中出现频率最高的值?(★★★)

# 示例数组
arr = np.array([1, 2, 3, 4, 5, 1, 2, 1, 1, 2, 2, 2, 3])# 对于非负整数数组
if arr.min() >= 0 and np.issubdtype(arr.dtype, np.integer):counts = np.bincount(arr)most_frequent = np.argmax(counts)
else:# 对于其他类型的数组,包括负数和浮点数values, counts = np.unique(arr, return_counts=True)most_frequent = values[np.argmax(counts)]print("出现频率最高的值是:", most_frequent)

84.从一个随机的10x10矩阵中提取所有连续的3x3块(★★★)

# 要从一个给定的10x10矩阵中提取所有连续的3x3块,可以使用stride_tricks模块中的as_strided函数来有效地实现。通过这种方式,我们可以创建一个新的视图来表示每个3x3的块,而无需复制数据。
from numpy.lib.stride_tricks import as_strided# 创建一个随机的10x10矩阵
matrix = np.random.rand(10, 10)# 提取所有3x3块
block_shape = (3, 3)
blocks = as_strided(matrix, shape=(8, 8, 3, 3), strides=matrix.strides + matrix.strides)print("所有连续的3x3块:")
print(blocks)

85.创建一个2D数组子类,使得Z[i,j] == Z[j,i](★★★)

class Symmetric2DArray(np.ndarray):def __setitem__(self, index, value):# 调用基类的__setitem__来设置值super().__setitem__(index, value)# 设置对称元素的值,以保持数组的对称性if isinstance(index, tuple) and len(index) == 2:super().__setitem__((index[1], index[0]), value)def symmetric_array(shape, dtype=float, buffer=None, offset=0, strides=None, order=None):# 使用np.ndarray来创建数组的实例,然后将其视为Symmetric2DArrayreturn np.ndarray(shape, dtype, buffer, offset, strides, order).view(Symmetric2DArray)# 创建一个5x5的对称数组
Z = symmetric_array((3, 3))
Z[0, 1] = 1print(Z)

86.考虑一组p个形状为(n,n)的矩阵和一组p个形状为(n,1)的向量。如何一次性计算p个矩阵乘积的和?(结果的形状为(n,1))(★★★)

# 示例数据
p, n = 3, 4  # 假设有3个4x4矩阵和3个4x1向量
matrices = np.random.rand(p, n, n)  # p个n x n矩阵
vectors = np.random.rand(p, n, 1)  # p个n x 1向量# 计算p个矩阵乘积的和
# 使用np.einsum进行计算
result = np.einsum('ijk,ikl->jl', matrices, vectors)print("最终结果的形状为:", result.shape)
print(result)

87.考虑一个16x16的数组,如何得到块求和(块大小为4x4)?(★★★)

# 创建一个16x16的随机数组
arr = np.random.rand(16, 16)# 对数组进行块求和(块大小为4x4)
# 我们将使用reshape和sum操作来完成这个任务# 步骤1: 将数组重构为(4, 4, 4, 4),这样每个4x4的块都是独立的
# 步骤2: 对重构后的数组沿着最后两个维度求和,以获得每个块的总和
# 步骤3: 最终得到一个4x4的数组,每个元素代表原始数组中对应4x4块的总和
block_sum = arr.reshape(4, 4, 4, 4).sum(axis=(2, 3))print("块求和的结果为:")
print(block_sum)

88.如何使用numpy数组实现生命游戏?(★★★)

# 康威的生命游戏是一个经典的细胞自动机,其规则简单但能产生复杂的行为。在生命游戏中,每个细胞可以处于活着(1)或死亡(0)两种状态之一,细胞的状态由其周围的8个细胞在上一代中的状态决定。具体规则如下:
# 
# 生存:如果一个活细胞周围有2或3个活细胞,该细胞在下一代中保持活着。
# 死亡:如果一个活细胞周围的活细胞少于2个或多于3个,该细胞在下一代中死亡。
# 繁殖:如果一个死细胞周围正好有3个活细胞,该细胞在下一代中变为活细胞。
# 使用NumPy数组实现生命游戏,我们可以利用卷积操作来计算每个细胞周围的活细胞数量。
import numpy as np
from scipy.signal import convolve2d
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from IPython.display import HTML
%matplotlib notebook
def life_step(X):"""执行生命游戏的一步"""kernel = np.array([[1, 1, 1],[1, 0, 1],[1, 1, 1]])neighbors = convolve2d(X, kernel, mode='same', boundary='wrap')return (neighbors == 3) | (X & (neighbors == 2))# 初始化游戏状态
np.random.seed(0)
X = np.random.randint(0, 2, (100, 100))fig, ax = plt.subplots()
img = ax.imshow(X, cmap='binary', interpolation='nearest')
ax.axis('off')  # 不显示坐标轴def update(frame):global XX = life_step(X)img.set_data(X)return img,# 创建动画
ani = FuncAnimation(fig, update, frames=10, blit=True)plt.show()

 效果如下:

89.如何获取一个数组的n个最大值(★★★)

arr = np.array([1, 3, 2, 4, 5])
n = 3# 使用np.partition获取n个最大值
partitioned_arr = np.partition(arr, -n)[-n:]
print("使用np.partition得到的N个最大值:", partitioned_arr)# 如果你也需要这些值的索引,可以这样做
indices = np.argpartition(arr, -n)[-n:]
print("使用np.partition得到的N个最大值的索引:", indices)

90.给定任意数量的向量,构建笛卡尔积(每个项的每种组合)(★★★)

def cartesian_product(*arrays):la = len(arrays)dtype = np.result_type(*arrays)arr = np.empty([len(a) for a in arrays] + [la], dtype=dtype)for i, a in enumerate(np.ix_(*arrays)):arr[...,i] = areturn arr.reshape(-1, la)# 示例向量
vectors = [np.array([1, 2]),  # 第一个向量np.array([4, 5]),  # 第二个向量np.array([7, 8])   # 第三个向量
]# 构建笛卡尔积
result = cartesian_product(*vectors)print("笛卡尔积:\n", result)
# 笛卡尔积:
#  [[1 4 7]
#  [1 4 8]
#  [1 5 7]
#  [1 5 8]
#  [2 4 7]
#  [2 4 8]
#  [2 5 7]
#  [2 5 8]]

91.如何从常规数组创建记录数组?(★★★)

# 假设我们有以下数据(两列,一列是整数,另一列是浮点数)
data = np.array([(1, 2.5), (3, 4.5), (5, 6.5)])# 创建记录数组
rec_array = np.array(data, dtype=[('col1', int), ('col2', float)])# 现在rec_array是一个记录数组,我们可以通过列名访问数据
print(rec_array['col1'])  # 输出第一列数据
print(rec_array['col2'])  # 输出第二列数据

92.考虑一个大向量Z,使用3种不同方法计算Z的三次方(★★★)

# 方法1:使用Z**3
Z = np.array([1, 2, 3, 4, 5])  # 示例向量
result1 = Z ** 3
# 方法2:使用np.power(Z, 3)
result2 = np.power(Z, 3)
# 方法3:使用Z*Z*Z
result3 = Z * Z * Z
print("使用**运算符:", result1)
print("使用np.power函数:", result2)
print("使用元素级乘法:", result3)
# 使用**运算符: [  1   8  27  64 125]
# 使用np.power函数: [  1   8  27  64 125]
# 使用元素级乘法: [  1   8  27  64 125]

93.考虑两个形状为(8,3)和(2,2)的数组A和B。如何找到A的行,这些行包含B的每行的元素,不考虑B中元素的顺序?(★★★)

A = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9],[10, 11, 12],[13, 14, 15],[16, 17, 18],[19, 20, 21],[22, 23, 24]])B = np.array([[2, 3],[11, 12]])# 初始化一个空列表来存储每个B中行的结果
rows_for_b = []# 对于B中的每一行
for b_row in B:# 对于A中的每一行rows_with_b_elements = []for i, a_row in enumerate(A):# 如果A中的这一行包含B中当前行的任意元素if np.any(np.isin(b_row, a_row)):rows_with_b_elements.append(i)rows_for_b.append(rows_with_b_elements)print("对于B中的每一行,在A中找到的包含B元素的行索引:")
for i, rows in enumerate(rows_for_b):print(f"B中的第{i}行对应的A中的行索引:{rows}")

94.考虑一个10x3的矩阵,提取具有不等值的行(例如[2,2,3])(★★★)

# 创建一个10x3的随机矩阵,为了示例明显性,这里使用整数
np.random.seed(0)  # 确保示例的可重复性
matrix = np.random.randint(0, 5, size=(10, 3))print("原始矩阵:")
print(matrix)# 提取具有不等值的行
# 我们可以通过比较每一行的最大值和最小值来实现,如果最大值不等于最小值,则该行具有不等值
unique_rows = matrix[matrix.max(axis=1) != matrix.min(axis=1)]print("具有不等值的行:")
print(unique_rows)

95.将一个整数向量转换为矩阵的二进制表示形式(★★★)

# 示例整数向量
vector = np.array([3, 10, 15])# 确定二进制表示需要的最大长度
max_length = np.max(np.floor(np.log2(vector)).astype(int) + 1)# 将每个整数转换为二进制表示,并填充到相同长度
binary_matrix = np.array([list(np.binary_repr(v, width=max_length)) for v in vector], dtype=int)print("二进制表示矩阵:")
print(binary_matrix)

96.给定一个二维数组,如何提取唯一的行?(★★★)

# 示例二维数组
array = np.array([[1, 2, 3],[4, 5, 6],[1, 2, 3],[7, 8, 9]])# 提取唯一的行
unique_rows = np.unique(array, axis=0)print("唯一的行:")
print(unique_rows)

97.考虑2个向量A和B,编写内积、外积、求和和乘法函数的einsum等价形式(★★★)

A = np.array([1, 2, 3])
B = np.array([4, 5, 6])# 使用einsum计算内积
dot_product = np.einsum('i,i->', A, B)
print("内积:", dot_product)
# 使用einsum计算外积
outer_product = np.einsum('i,j->ij', A, B)
print("外积:\n", outer_product)
# 使用einsum计算A的求和
sum_A = np.einsum('i->', A)
print("A的求和:", sum_A)
# 使用einsum计算元素乘法
elementwise_multiplication = np.einsum('i,i->i', A, B)
print("元素乘法:", elementwise_multiplication)
# 内积: 32
# 外积:
#  [[ 4  5  6]
#  [ 8 10 12]
#  [12 15 18]]
# A的求和: 6
# 元素乘法: [ 4 10 18]

98.考虑由两个向量(X,Y)描述的路径,如何使用等距样本对其进行采样?(★★★)

import numpy as np
from scipy.interpolate import interp1d# 假设X和Y描述的路径
X = np.array([0, 1, 2, 3, 4, 5])
Y = np.array([0, 1, 0, 1, 0, 1])# 计算每一步的距离
dX = np.diff(X)
dY = np.diff(Y)
dist = np.sqrt(dX**2 + dY**2)# 计算累积距离
cumulative_dist = np.insert(np.cumsum(dist), 0, 0)# 插值
interp_X = interp1d(cumulative_dist, X, kind='linear')
interp_Y = interp1d(cumulative_dist, Y, kind='linear')# 等距采样
num_samples = 20  # 采样点数
sample_points = np.linspace(0, cumulative_dist[-1], num_samples)
sampled_X = interp_X(sample_points)
sampled_Y = interp_Y(sample_points)

99.给定一个整数n和一个2D数组X,从X中选择可以解释为具有n度的多项式分布抽样的行,即,只包含整数且总和为n的行。(★★★)

import numpy as np# 示例数据
X = np.array([[1, 2, 2],[2, 2, 2],[3, 3, 1],[4, 4, 1]])
n = 6  # 给定的总和# 检查每个元素是否为整数
is_integer = np.all(X == np.floor(X), axis=1)  # 或使用其他方法检查整数性# 计算每行的元素之和,并检查是否等于n
sum_to_n = np.sum(X, axis=1) == n# 结合两个条件,选择满足条件的行
rows_meeting_criteria = X[np.logical_and(is_integer, sum_to_n)]print("满足条件的行:")
print(rows_meeting_criteria)

100.对于一个1D数组X的平均值,计算其引导式95%置信区间(即,用替换的方式重采样数组元素N次,计算每个样本的平均值,然后计算平均值的百分位数)。(★★★)

import numpy as np# 示例1D数组
X = np.random.normal(0, 1, 100)  # 假设X是从标准正态分布中抽取的100个样本
N = 1000  # 重采样次数# 存储每次重采样的平均值
resampled_means = np.empty(N)# 重采样并计算平均值
for i in range(N):resampled = np.random.choice(X, size=X.size, replace=True)  # 重采样resampled_means[i] = np.mean(resampled)  # 计算平均值# 计算95%置信区间
lower_percentile = np.percentile(resampled_means, 2.5)
upper_percentile = np.percentile(resampled_means, 97.5)print(f"95%置信区间: ({lower_percentile}, {upper_percentile})")

100题完结

以上

学习在于行动,总结和坚持,共勉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【鸿蒙HarmonyOS开发笔记】组件编程技巧之使用@Builder装饰器实现UI结构复用

概述 当页面有多个相同的UI结构时,若每个都单独声明,同样会有大量重复的代码。为避免重复代码,可以将相同的UI结构提炼为一个自定义组件,完成UI结构的复用。 除此之外,ArkTS还提供了一种更轻量的UI结构复用机制Build…

小白DB补全计划Day1-LeetCode:SQL基本操作select

前言:找工作(主人)的任务罢了 链接:1757. 可回收且低脂的产品 - 力扣(LeetCode) 584. 寻找用户推荐人 - 力扣(LeetCode) 来源:LeetCode 对DB篇的SQL章不太知道怎么写…

数学建模-估计出租车的总数

文章目录 1、随机抽取的号码在总体的排序 1、随机抽取的号码在总体的排序 10个号码从小到大重新排列 [ x 0 , x ] [x_0, x] [x0​,x] 区间内全部整数值 ~ 总体 x 1 , x 2 , … , x 10 总体的一个样本 x_1, x_2, … , x_{10} ~ 总体的一个样本 x1​,x2​,…,x10​ 总体的一个样…

mysql与redis数据测试

题目要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.再次查询这一万条数据,要求根据年龄进行排序,mysql和redis各实现…

【FPGA/IC】什么是模块化设计?

什么是模块化设计 FPGA/IC设计中根据模块层次的不同有两种基本的设计方法: 自下而上方法对设计进行逐次划分的过程是从基本单元出发的,设计树最末枝上的单元是已经设计好的基本单元,或者其他项目开发好的单元或者IP。该方法先对底层的功能块…

探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自:探索设计模式的魅力:探索发布-订阅模式的深度奥秘-…

Jest:JavaScript的单元测试利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

作品展示ETL

1、ETL 作业定义、作业导入、控件拖拽、执行、监控、稽核、告警、报告导出、定时设定 欧洲某国电信系统数据割接作业定义中文页面(作业顶层,可切英文,按F1弹当前页面帮助) 涉及文件拆分、文件到mysql、库到库、数据清洗、数据转…

Vue mqtt 附在线mqtt客户端地址 + 完整示例

mqtt:轻量级物联网消息推送协议。 目录 一、介绍 1、官方文档 1)npm网 2) 中文网 MQTT中文网_MQTT 物联网接入平台-MQTT.CN 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 mqtt 四、完整示例 tips 一、介…

渐开线花键环规的几种加工方法

小伙伴们大家好,今天咱们聊一聊渐开线花键环规的几种加工方法。 渐开线花键环规是在汽车、摩托车以及机械制造工业应用非常广泛的一种检测量具。它属于是一种内花键齿轮,其精度和表面粗糙度要求都比较高。采用的加工方法也比较多,下面详细看…

【爬虫逆向】Python逆向采集猫眼电影票房数据

进行数据抓包,因为这个网站有数据加密 !pip install jsonpathCollecting jsonpathDownloading jsonpath-0.82.2.tar.gz (10 kB)Preparing metadata (setup.py) ... done Building wheels for collected packages: jsonpathBuilding wheel for jsonpath (setup.py) .…

Android VINF

周末搞这玩意欲仙欲死,没办法只有看看。VINTF是供应商接口对象(VINTF 对象),准确的说,这个是属于兼容性矩阵概念。。。有点想起了以前看过的一个电影,异次元杀阵。。。下面是谷歌官方的图。 本质上其实就是…

C++之类和对象(3)

目录 1. 再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit 2. static成员 2.1 概念 3. 友元 3.1 友元函数 3.2 友元类 4. 内部类 5. 匿名对象 6. 拷贝对象时编译器做出的优化 1. 再谈构造函数 1.1 构造函数体赋值 class Date { public:Date(int year2024…

Helm Chart部署最简SpringBoot到K8S(AWS EKS版)

目标 这里假设,我们已经基本会使用k8s的kubectl命令进行部署了,也已经会自己打docker镜像推送到AWS ECR上面去了。而且,已经在云上准备好了AWS ECR镜像库和AWS EKS的k8s集群了。 这个前提上面,我们今天使用Helm Chart项目准备k8s…

数据结构试卷第九套

1.时间复杂度 2.树,森林,二叉树的转换 2.1树转二叉树 给所有的兄弟节点之间加一条连线;去线,只保留当前根节点与第一个叶子节点的连线,删除它与其他节点之间的连线;然后根据左孩子右兄弟进行调整&#xf…

个人网站制作 Part 11 添加用户权限管理 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加用户权限管理🔨使用Passport.js🔧步骤 1: 修改Passport本地策略 🔨修改用户模型🔧步骤 2: 修改用户模型 &#x1f528…

医学数据分析中缺失值的处理方法

医学数据分析中缺失值的处理方法 (为了更好的展示,在和鲸社区使用代码进行展示) 医学数据分析中,缺失值是不可避免的问题。缺失值的存在会影响数据的完整性和准确性,进而影响分析结果的可靠性。因此,在进…

中创ET4410台式电桥固件升级工具(修复了列表扫描的BUG)

中创ET4410台式LCR数字电桥固件升级工具和最新版固件(修复了列表扫描的BUG) 中创ET4410 台式LCR数字电桥 简单开箱测评:https://blog.zeruns.tech/archives/763.html 之前买的中创ET4410台式LCR数字电桥固件有BUG(胜利的VC4090C…

FREERTOS中断配置和临界段

本文基础内容参考的是正点原子的FREERTOS课程。 这是基于HAL库的 正点原子手把手教你学FreeRTOS实时系统 这是基于标准库的 正点原子FreeRTOS手把手教学-基于STM32 回顾STM32的中断 什么是中断? 中断优先级分组设置 Freertos中断分组 Freertos就是用的最后一种&…

redis学习-redis介绍

目录 1.redis介绍 2.redis常用命令(可以在官网的命令中查看redis的所有命令) 2.1终端命令 2.2 redis通用命令 2.3五大基本类型的命令以及特殊情况分析 (导航) 3.事务 4. redis实现消息订阅 5. redis的两种持久化策略 …