Python实现三维高斯函数图像显示

本文展示了如何使用numpy和TensorFlow两种不同的方法来生成并绘制3D高斯分布。首先,通过numpy模块创建网格数据,并计算高斯分布函数值,然后使用matplotlib进行3D表面图的绘制。接着,利用TensorFlow定义高斯核函数,同样生成3D高斯分布并绘制。这两种方法都详细介绍了代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、用numpy模块实现

import numpy as np
import matplotlib.pyplot as plt
import math
import mpl_toolkits.mplot3d

x, y = np.mgrid[-2:2:0.01, -2:2:0.01]

z=(1/2*math.pi*3**2)*np.exp(-(x**2+y**2)/2*3**2)
ax = plt.subplot(111, projection='3d') 
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='rainbow', alpha=0.9)#绘面
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

在这里插入图片描述
2、用TensorFlow实现

import numpy as np
import matplotlib.pyplot as plt
import math
import mpl_toolkits.mplot3d
import tensorflow as tf
from sklearn import datasets

sess = tf.InteractiveSession()
gamma = tf.constant(-1.0)
x, y = np.mgrid[-2:2:0.01, -2:2:0.01]

x_data = tf.placeholder(shape=[400, 400], dtype=tf.float32)
y_data = tf.placeholder(shape=[400, 400], dtype=tf.float32)

Kernel = tf.exp(tf.multiply(gamma, tf.add((x_data*x_data),(y_data*y_data))))
Kernel = sess.run(Kernel, feed_dict={x_data: x,y_data: y})

ax = plt.subplot(111, projection='3d') 
ax.plot_surface(x, y, Kernel, rstride=1, cstride=1, cmap='rainbow', alpha=0.9)#绘面
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('Kernel')
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值