【数学建模】—【Python库】—【Numpy】—【学习】

目录

​编辑

1. NumPy安装

2. ndarray对象

1. 创建ndarray

1.从列表或元组创建:

2.使用内置函数创建:

2. ndarray属性

3. 数组运算

1. 基本运算

2. 数学函数

3.统计函数

4. 数组索引与切片

1. 一维数组索引与切片

 2.多维数组索引与切片

5. 数组形状操作

1. 改变数组形状

 2. 数组转置

6. 数组拼接与分割

1. 数组拼接

2. 数组分割 

7. 广播机制

8. 常用函数

1. 数组生成函数

 2.数学运算函数

9. 高级运算

1. 矩阵运算

2.统计运算

10. 实践案例

1. 数据分析案例

2. 数值计算案例

11. NumPy与其他库的结合

12. NumPy高级功能

1. 线性代数

2. 随机数生成

3. FFT(快速傅里叶变换)

13. NumPy性能优化

1. 向量化操作

2. 避免不必要的复制

​编辑14. 总结

NumPy综合总结

1. 简介

2. 安装与导入

3. ndarray对象

4. 数组运算

5. 数组索引与切片

6. 数组形状操作

7. 数组拼接与分割

8. 广播机制

9. 常用函数

10. 高级运算

11. 实践案例

12. NumPy与其他库的结合

13. NumPy高级功能

14. NumPy性能优化

结论


 专栏:数学建模学习笔记

pycharm专业版免费激活教程见资源

python相关库的安装:pandas,numpy,matplotlib,statsmodels

总篇:【数学建模】—【新手小白到国奖选手】—【学习路线】

本篇属于第一卷——Numpy学习笔记

NumPy(Numerical Python)是Python编程语言的一个库,支持大规模的多维数组与矩阵运算,此外还提供了大量的数学函数库。NumPy在科学计算和数据分析领域有着广泛的应用。其核心是一个高效的多维数组对象,称为ndarray。

1. NumPy安装

要使用NumPy库,首先需要安装它。可以通过pip来安装:

pip install numpy

安装完成后,可以通过以下方式导入NumPy库:

import numpy as np

2. ndarray对象

NumPy的核心是ndarray对象,它是一个多维数组。它和Python的列表类似,但提供了更高效的存储和运算功能。

1. 创建ndarray

可以通过多种方式创建ndarray对象:

1.从列表或元组创建:

import numpy as np

# 从列表创建
a = np.array([1, 2, 3])
print(a)  # 输出:[1 2 3]

# 从嵌套列表创建
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)  # 输出:
# [[1 2 3]
#  [4 5 6]]

2.使用内置函数创建:

import numpy as np

# 创建全零数组
zeros_array = np.zeros((2, 3))
print(zeros_array)  # 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 创建全一数组
ones_array = np.ones((2, 3))
print(ones_array)  # 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 创建一个值为5的数组
full_array = np.full((2, 3), 5)
print(full_array)  # 输出:
# [[5 5 5]
#  [5 5 5]]

# 创建单位矩阵
eye_array = np.eye(3)
print(eye_array)  # 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

# 创建随机数组
random_array = np.random.random((2, 3))
print(random_array)  # 输出(示例):
#[[0.55827818 0.41537687 0.41252448]
# [0.10251325 0.7435904  0.69922825]]

2. ndarray属性

ndarray对象有许多属性,用于描述数组的形状、维度、数据类型等:

import numpy as np

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

print("数组维度:", a.ndim)  # 输出:数组维度: 2
print("数组形状:", a.shape)  # 输出:数组形状: (2, 3)
print("数组大小:", a.size)  # 输出:数组大小: 6
print("数组数据类型:", a.dtype)  # 输出:数组数据类型: int32
print("数组元素大小:", a.itemsize)  # 输出:数组元素大小: 4
print("数组数据缓冲区:", a.data)  # 输出:数组数据缓冲区: <memory at 0x000001F49D4336B0>

3. 数组运算

NumPy提供了丰富的数组运算功能,可以对ndarray对象进行数学运算、逻辑运算、统计运算等。

1. 基本运算

可以对数组进行元素级别的运算:

import numpy as np

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

# 加法
print(a + b)  # 输出:[5 7 9]

# 减法
print(a - b)  # 输出:[-3 -3 -3]

# 乘法
print(a * b)  # 输出:[ 4 10 18]

# 除法
print(a / b)  # 输出:[0.25 0.4  0.5 ]

 

2. 数学函数

NumPy提供了大量的数学函数,可以对数组进行逐元素的计算:

import numpy as np

a = np.array([0, np.pi / 2, np.pi])

# 三角函数
print(np.sin(a))  # 输出:[0.000000e+00 1.000000e+00 1.224647e-16]
print(np.cos(a))  # 输出:[ 1.000000e+00  6.123234e-17 -1.000000e+00]
print(np.tan(a))  # 输出:[ 0.00000000e+00  1.63312394e+16 -1.22464680e-16]

# 指数和对数
print(np.exp(a))  # 输出:[ 1.          4.48168907 23.14069263]
print(np.log(a))  # 输出:[-inf  0.         1.14472989](注:0的对数为负无穷)
print(np.log10(a))  # 输出:[-inf  0.          0.49714987](注:0的对数为负无穷)

 

在使用NumPy计算数组中元素的对数时,当数组中包含零元素时,会出现“divide by zero encountered in log”或“divide by zero encountered in log10”这样的警告。这是因为对数函数在零值处无定义,对数为负无穷(-inf)。

这些警告是由零值引起的,它们在对数运算中会导致无穷大的结果。这在NumPy中是一个正常的行为,提醒你注意输入数据中的零值。

如果你想避免这些警告,可以在计算对数之前,处理数组中的零值。你可以将零值替换为一个非常小的正数,例如 np.finfo(float).eps(浮点数的最小可表示正数),以避免这些警告。以下是一个示例代码:确保在替换零值之前,数组已经正确更新。

import numpy as np

a = np.array([0, 1, 3])
# 替换数组中的零值为非常小的正数
a = np.where(a == 0, np.finfo(float).eps, a)

print(np.log(a))    # 输出不会包含负无穷
print(np.log10(a))  # 输出不会包含负无穷

确保代码执行顺序正确,即先替换零值再计算对数。这段代码首先将数组 a 中的零值替换为 np.finfo(float).eps,然后计算 a 的自然对数和常用对数,这样就不会再出现除以零的警告了。

3.统计函数

NumPy提供了多种统计函数,可以对数组进行统计运算:

import numpy as np

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

# 最小值
print(np.min(a))  # 输出:1

# 最大值
print(np.max(a))  # 输出:6

# 和
print(np.sum(a))  # 输出:21

# 均值
print(np.mean(a))  # 输出:3.5

# 标准差
print(np.std(a))  # 输出:1.707825127659933

# 中位数
print(np.median(a))  # 输出:3.5

# 累积和
print(np.cumsum(a))  # 输出:[ 1  3  6 10 15 21]

4. 数组索引与切片

NumPy提供了强大的数组索引与切片功能,可以方便地访问和修改数组元素。

1. 一维数组索引与切片

import numpy as np

a = np.array([0, 1, 2, 3, 4, 5])

# 索引
print(a[0])  # 输出:0  输出第一个元素
print(a[-1])  # 输出:5  输出最后一个元素

# 切片
print(a[1:3])  # 输出:[1 2]  输出第二个到第三个元素
print(a[:3])  # 输出:[0 1 2]  输出前三个元素
print(a[3:])  # 输出:[3 4 5]  输出第三个到最后一个元素
print(a[::2])  # 输出:[0 2 4]  每隔一个元素输出一个元素

 2.多维数组索引与切片

import numpy as np

a = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])

# 索引
print(a[0, 0])  # 输出:0  输出第一行第一列的元素
print(a[1, -1])  # 输出:5  输出第二行最后一个元素

# 切片
print(a[:2, 1:3])  # 输出:
# [[1 2]
#  [4 5]]  输出第一行到第二行,第二列到第三列的元素

print(a[::2, ::2])  # 输出:
# [[0 2]
#  [6 8]]  每隔一行一列输出一个元素

5. 数组形状操作

NumPy提供了多种函数来改变数组的形状。

1. 改变数组形状

import numpy as np

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

# 改变形状
print(a.reshape(3, 2))  # 输出:
# [[1 2]
#  [3 4]
#  [5 6]]

print(a.flatten())  # 将数组展平成一维  输出:[1 2 3 4 5 6]

 2. 数组转置

import numpy as np

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

# 转置
print(a.T)  # 输出:
# [[1 4]
#  [2 5]
#  [3 6]]

6. 数组拼接与分割

NumPy提供了拼接与分割数组的函数。

1. 数组拼接

import numpy as np

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

# 垂直拼接
print(np.vstack((a, b)))  # 输出:
# [[1 2]
#  [3 4]
#  [5 6]]

# 水平拼接
print(np.hstack((a, b.T)))  # 输出:
# [[1 2 5]
#  [3 4 6]]

2. 数组分割 

import numpy as np

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

# 水平分割
print(np.hsplit(a, 3))  # 输出:[array([[1], [4]]), array([[2], [5]]), array([[3], [6]])]

# 垂直分割
print(np.vsplit(a, 2))  # 输出:[array([[1, 2, 3]]), array([[4, 5, 6]])]

7. 广播机制

NumPy的广播机制允许不同形状的数组进行算术运算。广播的规则是:

  1. 如果数组的维度不同,将维度较小的数组进行扩展,直到两个数组的维度相同。
  2. 如果两个数组在某个维度上的长度不同,但其中一个长度为1,则可以进行运算。
  3. 如果两个数组在任何一个维度上的长度都不相同且都不为1,则无法进行广播。
import numpy as np

a = np.array([1, 2, 3])
b = np.array([[0], [1], [2]])

# 广播机制
print(a + b)  # 输出:
# [[1 2 3]
#  [2 3 4]
#  [3 4 5]]

8. 常用函数

NumPy提供了许多常用函数,以下列出一些常用函数的示例。

1. 数组生成函数

import numpy as np

# 创建全零数组
print(np.zeros((2, 3)))  # 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 创建全一数组
print(np.ones((2, 3)))  # 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 创建指定值数组
print(np.full((2, 3), 5))  # 输出:
# [[5 5 5]
#  [5 5 5]]

# 创建单位矩阵
print(np.eye(3))  # 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

# 创建随机数组
print(np.random.random((2, 3)))  # 输出(示例):
# [[0.97601061 0.54150051 0.71578887]
 #[0.44954629 0.74204514 0.63492767]]

# 创建等差数组
print(np.arange(0, 10, 2))  # 输出:[0 2 4 6 8]

# 创建等比数组
print(np.linspace(0, 1, 5))  # 输出:[0.   0.25 0.5  0.75 1.  ]

 

 2.数学运算函数

import numpy as np

a = np.array([1, 2, 3, 4])

# 求和
print(np.sum(a))  # 输出:10

# 求乘积
print(np.prod(a))  # 输出:24

# 求累积和
print(np.cumsum(a))  # 输出:[ 1  3  6 10]

# 求累积乘积
print(np.cumprod(a))  # 输出:[ 1  2  6 24]

9. 高级运算

1. 矩阵运算

NumPy提供了丰富的矩阵运算函数。

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 矩阵乘法
print(np.dot(a, b))  # 输出:
# [[19 22]
#  [43 50]]

# 矩阵行列式
print(np.linalg.det(a))  # 输出:-2.0000000000000004

# 矩阵逆
print(np.linalg.inv(a))  # 输出:
# [[-2.   1. ]
#  [ 1.5 -0.5]]

# 矩阵特征值
print(np.linalg.eig(a))  # 输出:(特征值,特征向量)
# EigResult(eigenvalues=array([-0.37228132,  5.37228132]), #eigenvectors=array([[-0.82456484, -0.41597356],
 #      [ 0.56576746, -0.90937671]]))

 

2.统计运算

NumPy提供了多种统计运算函数。

import numpy as np

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

# 均值
print(np.mean(a))  # 输出:3.5

# 中位数
print(np.median(a))  # 输出:3.5

# 方差
print(np.var(a))  # 输出:2.9166666666666665

# 标准差
print(np.std(a))  # 输出:1.707825127659933

# 最小值
print(np.min(a))  # 输出:1

# 最大值
print(np.max(a))  # 输出:6

# 百分位数
print(np.percentile(a, 50))  # 输出:3.5

10. 实践案例

1. 数据分析案例

以下是一个简单的数据分析案例,展示如何使用NumPy进行数据处理和分析。

import numpy as np

# 生成模拟数据
data = np.random.randn(1000)

# 计算均值和标准差
mean = np.mean(data)
std_dev = np.std(data)

print(f"均值: {mean}, 标准差: {std_dev}")  # 示例输出:均值: -0.015971063944354425, 标准差: 0.9670869531250885
# 计算数据的直方图
hist, bin_edges = np.histogram(data, bins=10)
print(hist)  # 示例输出:[  4   8  53 101 227 251 204 111  34   7]
print(bin_edges)  # 示例输出:[-3.42803477 -2.79654529 -2.16505581 -1.53356634 -0.90207686 -0.27058738
#  0.36090209  0.99239157  1.62388104  2.25537052  2.88686   ]

2. 数值计算案例

以下是一个简单的数值计算案例,展示如何使用NumPy进行数值计算。

import numpy as np

# 定义函数
def f(x):
    return x**2 - 4*x + 4

# 生成数据
x = np.linspace(-10, 10, 100)

# 计算函数值
y = f(x)

print(y)  
"""
示例输出:
[1.44000000e+02 1.39192327e+02 1.34466279e+02 1.29821855e+02
 1.25259055e+02 1.20777880e+02 1.16378329e+02 1.12060402e+02
 1.07824100e+02 1.03669421e+02 9.95963677e+01 9.56049383e+01
 9.16951331e+01 8.78669524e+01 8.41203959e+01 8.04554637e+01
 7.68721559e+01 7.33704724e+01 6.99504132e+01 6.66119784e+01
 6.33551678e+01 6.01799816e+01 5.70864198e+01 5.40744822e+01
 5.11441690e+01 4.82954801e+01 4.55284155e+01 4.28429752e+01
 4.02391593e+01 3.77169677e+01 3.52764004e+01 3.29174574e+01
 3.06401388e+01 2.84444444e+01 2.63303745e+01 2.42979288e+01
 2.23471074e+01 2.04779104e+01 1.86903377e+01 1.69843893e+01
 1.53600653e+01 1.38173656e+01 1.23562902e+01 1.09768391e+01
 9.67901235e+00 8.46280992e+00 7.32823181e+00 6.27527803e+00
 5.30394858e+00 4.41424344e+00 3.60616264e+00 2.87970615e+00
 2.23487399e+00 1.67166616e+00 1.19008264e+00 7.90123457e-01
 4.71788593e-01 2.35078053e-01 7.99918376e-02 6.52994592e-03
 1.46923783e-02 1.04479135e-01 2.75890215e-01 5.28925620e-01
 8.63585348e-01 1.27986940e+00 1.77777778e+00 2.35731048e+00
 3.01846750e+00 3.76124885e+00 4.58565453e+00 5.49168452e+00
 6.47933884e+00 7.54861749e+00 8.69952046e+00 9.93204775e+00
 1.12461994e+01 1.26419753e+01 1.41193756e+01 1.56784002e+01
 1.73190491e+01 1.90413223e+01 2.08452199e+01 2.27307418e+01
 2.46978880e+01 2.67466585e+01 2.88770534e+01 3.10890725e+01
 3.33827160e+01 3.57579839e+01 3.82148760e+01 4.07533925e+01
 4.33735333e+01 4.60752984e+01 4.88586879e+01 5.17237017e+01
 5.46703398e+01 5.76986022e+01 6.08084889e+01 6.40000000e+01]
"""

11. NumPy与其他库的结合

NumPy通常与其他库结合使用,如Pandas、Matplotlib、SciPy等。以下是一个简单的示例,展示如何结合NumPy和Matplotlib进行数据可视化。

import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制数据
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.title('Sin(x) Function')
plt.show()

运行结果: 一幅展示sin(x)函数的折线图,其中x轴表示从0到10的均匀分布的数据,y轴表示sin(x)的值。 

 

12. NumPy高级功能

1. 线性代数

NumPy提供了丰富的线性代数功能,可以进行矩阵乘法、矩阵分解、特征值计算等。

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 矩阵乘法
print(np.dot(a, b))  # 输出:
# [[19 22]
#  [43 50]]

# 矩阵行列式
print(np.linalg.det(a))  # 输出:-2.0000000000000004

# 矩阵逆
print(np.linalg.inv(a))  # 输出:
# [[-2.   1. ]
#  [ 1.5 -0.5]]

# 矩阵特征值
print(np.linalg.eig(a))  # 输出:(特征值,特征向量)
# (array([-0.37228132,  5.37228132]), 
#  array([[-0.82456484, -0.41597356],
#         [ 0.56576746, -0.90937671]]))

2. 随机数生成

NumPy提供了丰富的随机数生成功能,可以生成各种分布的随机数。

import numpy as np

# 生成均匀分布的随机数
print(np.random.rand(2, 3))  # 输出(示例):
# [[0.2177449  0.71579651 0.40282945]
#  [0.00823481 0.2378211  0.22714768]]

# 生成标准正态分布的随机数
print(np.random.randn(2, 3))  # 输出(示例):
# [[-0.02638322 -0.29821612 -0.57163728]
#  [ 0.023793   -0.03624107  0.5007041 ]]

# 生成指定区间的随机整数
print(np.random.randint(0, 10, size=(2, 3)))  # 输出(示例):
# [[9 0 6]
#  [4 5 5]]
# 生成指定分布的随机数
print(np.random.normal(loc=0, scale=1, size=(2, 3)))  # 输出(示例):
#[[-0.05426652  0.00228263 -0.27759785]
 #[-0.47845462  2.04304079 -0.84451445]]

3. FFT(快速傅里叶变换)

NumPy提供了快速傅里叶变换功能,可以对数组进行快速傅里叶变换。

import numpy as np

a = np.array([0, 1, 2, 3])

# 快速傅里叶变换
print(np.fft.fft(a))  # 输出:
# [ 6.+0.j -2.+2.j -2.+0.j -2.-2.j]

# 逆快速傅里叶变换
print(np.fft.ifft(a))  # 输出:
# [ 1.5+0.j -0.5+0.5j -0.5+0.j -0.5-0.5j]

13. NumPy性能优化

NumPy通过其底层实现,已经大大优化了性能,但在实际应用中仍有许多技巧可以进一步提升性能。

1. 向量化操作

尽量使用向量化操作代替显式的Python循环,以提高性能。

import numpy as np

a = np.arange(1000000)

# 使用向量化操作
result = a * 2
print(result[:10])  # 输出:[ 0  2  4  6  8 10 12 14 16 18]

2. 避免不必要的复制

在操作大数组时,尽量避免不必要的数组复制操作,以减少内存使用和提高性能。

import numpy as np

a = np.arange(1000000)

# 避免不必要的复制
b = a[:500000]
print(b[:10])  # 输出:[0 1 2 3 4 5 6 7 8 9]

14. 总结

NumPy综合总结

本文通过详细的讲解和丰富的代码示例,全面介绍了NumPy库的基础知识、常用功能和高级应用,为初学者提供了深入理解和灵活使用NumPy的指南。

1. 简介

NumPy(Numerical Python)是Python编程语言的一个库,专门用于大规模的多维数组与矩阵运算。NumPy是科学计算和数据分析的重要工具,其核心是高效的多维数组对象ndarray。

2. 安装与导入

通过pip可以轻松安装NumPy库,导入方式为 import numpy as np

3. ndarray对象

ndarray对象是NumPy的核心,可以通过列表、元组或内置函数创建。ndarray具有多种属性,如维度、形状、大小、数据类型等,方便用户对数组进行描述和操作。

4. 数组运算

NumPy提供了丰富的运算功能,包括基本运算、数学函数和统计函数。用户可以对数组进行元素级别的加减乘除运算,使用三角函数、指数和对数函数进行复杂计算,还可以进行求和、均值、标准差等统计运算。

5. 数组索引与切片

NumPy的索引与切片功能强大,可以方便地访问和修改数组元素。支持一维和多维数组的索引和切片操作,使得数据操作更加灵活。

6. 数组形状操作

NumPy提供了改变数组形状的多种函数,如reshape、flatten和转置函数,使得用户可以轻松调整数组的结构以满足不同的计算需求。

7. 数组拼接与分割

NumPy支持数组的拼接与分割操作,用户可以使用vstack和hstack进行垂直和水平拼接,使用hsplit和vsplit进行数组分割。

8. 广播机制

广播机制允许不同形状的数组进行算术运算,极大地方便了数组的操作和计算。理解广播机制的规则有助于更有效地使用NumPy进行数组运算。

9. 常用函数

NumPy提供了多种常用函数,如创建全零数组、全一数组、单位矩阵、随机数组,以及生成等差和等比数组的函数。这些函数简化了数组的生成过程。

10. 高级运算

NumPy的高级运算功能包括矩阵运算和统计运算,支持矩阵乘法、行列式、矩阵逆和特征值计算,提供了丰富的统计函数,如均值、中位数、方差和标准差等。

11. 实践案例

本文通过数据分析和数值计算的实际案例,展示了如何使用NumPy进行数据处理和分析,以及进行数值计算,帮助读者将理论知识应用于实践。

12. NumPy与其他库的结合

NumPy通常与Pandas、Matplotlib、SciPy等库结合使用。本文展示了如何结合NumPy和Matplotlib进行数据可视化,进一步扩展了NumPy的应用范围。

13. NumPy高级功能

NumPy提供了线性代数、随机数生成和快速傅里叶变换等高级功能,使得其在科学计算和工程应用中更加得心应手。

14. NumPy性能优化

通过向量化操作和避免不必要的复制,用户可以进一步优化NumPy的性能,提升代码运行效率。

结论

NumPy作为Python科学计算的基础库,提供了强大的数组处理能力和丰富的数学函数,广泛应用于数据分析、科学计算、工程应用等领域。通过本篇详细的介绍和示例,读者可以全面掌握NumPy的使用方法,并在实际项目中灵活应用,从而大幅提升计算效率和编程体验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机的转速测量系统设计

【 摘 要 】 伴 随 着 我 国 科 学 技 术 水 平 的 快 速 发 展 &#xff0c; 当 前 我 国 对 单 片 机 的 转 速 测 量 系 统 控 制 这 一 领 域 也 越 来 越 趋 于 智 能 化 。 本 文 主 要 以 单 片 机 平 台 为 主 要 的 出 发 点 &#xff0c; 对 电 机 进 行 转 …

迁移学习——CycleGAN——循环一致性对抗网络

CycleGAN 1.导入需要的包2.数据加载&#xff08;1&#xff09;to_img 函数&#xff08;2&#xff09;数据加载&#xff08;3&#xff09;图像转换 3.随机读取图像进行预处理&#xff08;1&#xff09;函数参数&#xff08;2&#xff09;数据路径&#xff08;3&#xff09;读取文…

Springboot 前端传参后台接收当不存在参数bean对象时报错解决

后端接收代码 PostMapping(value "/updateUser") public String updateUser(RequestBody SysUser sysUser) {} 当前端传送多于的参数时报错如下&#xff1a; Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: U…

怎么改png图片的颜色?

要改变PNG图片的颜色&#xff0c;可以采取以下几种方法&#xff1a; 使用Photoshop等图像编辑软件&#xff1a;或者&#xff0c;也可以使用Photoshop中的选区工具&#xff08;如矩形选框、椭圆选框、套索工具等&#xff09;选中图片中需要改变颜色的部分&#xff0c;然后创建一…

小白上手AIGC-基于FC部署stable-diffusion

AIGC AIGC&#xff08;人工智能创造内容&#xff09;作为一种基于人工智能技术生成内容的新型创作模式。打破了过去大家对于AI的理解都是说只能涉足部分领域而无法涉足艺术或者是其他的创作领域的定律&#xff0c;现在的AIGC也能够创作内容了&#xff0c;而不再只是单纯的返回…

基于SpringBoot+Vue新闻管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

3_电机的发展及学习方法

一、电机组成及发展 1、什么是励磁&#xff1f; 在电磁学中&#xff0c;励磁是通过电流产生磁场的过程。 发电机或电动机由在磁场中旋转的转子组成。磁场可以由 永磁体或励磁线圈产生。对于带有励磁线圈的机器&#xff0c;电流必须在线圈中流动才能产生&#xff08;激发&#x…

HTML基础入门知识

HTML基础使用 文章目录 HTML基础使用1、什么是HTML2、web标准4、HTML语法规则5、常用的标签标题标签段落标签换行标签文本格式化标签div和span标签图片标签路径链接标签注释 1、什么是HTML 什么是网页 网站是指在因特网上根据一定的规则&#xff0c;使用 HTML 等制作的用于展示…

视创云展虚拟展厅融入AI智能助手,有哪些优势?

随着科技的日新月异&#xff0c;AI人工智能技术在各行业中已经得到了广泛的应用和实践&#xff0c;正深刻改变着我们的工作和生活方式。 为了给企业的营销展示注入新的活力&#xff0c;视创云展在其虚拟展厅中巧妙融入了「AI智能助手」。当用户沉浸在虚拟展厅的自由探索之中时…

【Feature Pyramid Networks for Object Detection】

Feature Pyramid Networks for Object Detection 摘要引言2 相关工作3 FPN4 应用摘要 特征金字塔是识别系统中用于检测不同尺度对象的基本组件。但是,最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们在计算和内存方面都很密集。在这篇论文中,我们利用深度卷积…

PD虚拟机支持M3吗 PD虚拟机怎样配置图形卡

最近有很多人在问M3芯片的苹果电脑和M2相比&#xff0c;有哪些提升的功能。实际上&#xff0c;M3芯片的苹果电脑拥有与M2相同的CPU与GPU数量&#xff0c;但比M2多50亿个晶体管&#xff0c;并引入了动态缓存、增强型神经网络引擎等技术&#xff0c;性能、功能均进一步加强。面对…

业务架构交付物

背景 业务的核心元素、扩展元素以及它们的协同关系&#xff0c;业务架构和其他架构的关系等等已经有了不少认识&#xff0c;那么&#xff0c;通过对业务架构的还原和分析&#xff0c;到底能够得到什么业务架构的内容呢&#xff1f;它可以是一套流程框架体系&#xff0c;也可以…

基于SpringBoot前后端分离在线骑行网站设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

C语言实现的飞机票系统解析

前言 操作系统&#xff1a;Windows下运行。如果需要在Linux运行&#xff08;单机版&#xff09;&#xff0c;则需要修改删除conio.h&#xff0c;自己写个头文件获取键盘输入。我已经写好了getch.h文件&#xff0c;需要将其导入使用。 开发环境&#xff1a;CodeBlocks || VS C…

2024高考-优先选专业还是优先选学校

分数限制下&#xff0c;选好专业还是选好学校&#xff1f; 24年高考帷幕落下&#xff0c;一场新的思考与选择悄然来临。对于每一位高考考生&#xff0c;学校和专业都是开启大学新生活的两个前置必选项。但有时候“鱼与熊掌不可兼得”&#xff0c;在分数受限的条件下&#xff0…

作业6.20

1.已知网址www.hqyj.com截取出网址的每一个部分(要求&#xff0c;该网址不能存入文件中) 2.将配置桥接网络的过程整理成文档&#xff0c;发csdn 步骤i&#xff1a;在虚拟机设置中启用桥接模式 1. 打开VMware虚拟机软件。 2. 选择您想要配置的虚拟机&#xff0c;点击菜单栏中的“…

减少液氮罐内液氮损耗的方法

监测与管理液氮容器的密封性能 液氮容器的密封性能直接影响液氮的损耗情况。一个常见的损耗源是容器本身的密封不良或老化导致的泄漏。为了有效减少液氮损耗&#xff0c;首先应当定期检查液氮容器的密封性能。这可以通过简单的方法如肉眼检查外观&#xff0c;或者更精确的方法…

在线客服源码系统全端通用 源码完全开源可以二次开发 带完整的安装代码包以及搭建教程

系统概述 在线客服源码系统采用了先进的技术架构&#xff0c;包括前端界面、后端服务、数据库等部分。前端界面采用了响应式设计&#xff0c;能够自适应不同的设备屏幕尺寸&#xff0c;为用户提供良好的使用体验。后端服务采用了高性能的服务器架构&#xff0c;确保系统的稳定…

中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons

在 2022 年的 re:Invent 大会上&#xff0c;亚马逊云科技宣布了一项重大更新&#xff1a;亚马逊云科技 Marketplace 为 Amazon Elastic Kubernetes Service&#xff08;Amazon EKS&#xff09;提供了附加组件的支持。这一创新功能极大地丰富了 EKS 的生态系统&#xff0c;使用户…

【力扣】重排链表

&#x1f525;博客主页&#xff1a; 我要成为C领域大神 &#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于分享知识&#xff0c;欢迎大家共同学习和交流。 给定一个单链表…