Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我认为在“测试”过程中出现了一个错误;如果; astropy.io导入拟合中的 从scipy.ndimage导入高斯滤波器 将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入pdb #创建空图像 nx,ny=512,512 图像=np.零((ny,nx)) #设定星星数 n=10000 #生成随机位置 r=np.随机.随机(n)*nx θ=np.随机均匀(0,2.*np.pi,n) #生成随机通量 f=np.随机。随机(n)**2 #计算位置 x=nx/2+r*np.cos(θ) y=ny/2+r*np.sin(θ) #在图像中添加星星 #==>第一个for循环和if语句=0和x[i]=0和y[i]_Python_Numpy - Fatal编程技术网

Python 我认为在“测试”过程中出现了一个错误;如果; astropy.io导入拟合中的 从scipy.ndimage导入高斯滤波器 将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入pdb #创建空图像 nx,ny=512,512 图像=np.零((ny,nx)) #设定星星数 n=10000 #生成随机位置 r=np.随机.随机(n)*nx θ=np.随机均匀(0,2.*np.pi,n) #生成随机通量 f=np.随机。随机(n)**2 #计算位置 x=nx/2+r*np.cos(θ) y=ny/2+r*np.sin(θ) #在图像中添加星星 #==>第一个for循环和if语句=0和x[i]=0和y[i]

Python 我认为在“测试”过程中出现了一个错误;如果; astropy.io导入拟合中的 从scipy.ndimage导入高斯滤波器 将numpy作为np导入 将matplotlib.pyplot作为plt导入 导入pdb #创建空图像 nx,ny=512,512 图像=np.零((ny,nx)) #设定星星数 n=10000 #生成随机位置 r=np.随机.随机(n)*nx θ=np.随机均匀(0,2.*np.pi,n) #生成随机通量 f=np.随机。随机(n)**2 #计算位置 x=nx/2+r*np.cos(θ) y=ny/2+r*np.sin(θ) #在图像中添加星星 #==>第一个for循环和if语句=0和x[i]=0和y[i],python,numpy,Python,Numpy,在i=3和i=4之间可能会出现错误?? 它发出这样的信息 索引器错误:只有整数、片(:)、省略号(…)、numpy.newaxis(None)和整数或布尔数组是有效的索引 有人帮我吗?你必须把y[i]和x[i]作为int: from astropy.io import fits from scipy.ndimage import gaussian_filter import numpy as np import matplotlib.pyplot as plt import pdb # Cre

在i=3和i=4之间可能会出现错误?? 它发出这样的信息

索引器错误:只有整数、片(
)、省略号(
)、numpy.newaxis(
None
)和整数或布尔数组是有效的索引


有人帮我吗?

你必须把
y[i]
x[i]
作为int:

from astropy.io import fits
from scipy.ndimage import gaussian_filter
import numpy as np
import matplotlib.pyplot as plt
import pdb

# Create empty image
nx, ny = 512, 512
image = np.zeros((ny, nx))

# Set number of stars
n = 10000

# Generate random positions
r = np.random.random(n) * nx
theta = np.random.uniform(0., 2. * np.pi, n)

# Generate random fluxes
f = np.random.random(n) ** 2

# Compute position
x = nx / 2 + r * np.cos(theta)
y = ny / 2 + r * np.sin(theta)

# Add stars to image
# ==> First for loop and if statement <==
for i in range(n):
    #pdb.set_trace()
    if x[i] >= 0 and x[i] < nx and y[i] >= 0 and y[i] < ny:
        #print(i)
        #pdb.set_trace()
        image[y[i], x[i]] += f[i]
        #print(i)

# Convolve with a gaussian
image = gaussian_filter(image, 1)

# Add noise
image += np.random.normal(3., 0.01, image.shape)

# Write out to FITS image
fits.writeto('cluster.fits', image, clobber=True)

当然不是浮点数

你觉得呢?你运行代码了吗?发生了什么事?发布准确的错误消息。显然,您正在尝试使用整数以外的内容对列表进行索引。您有
image[y[i],x[i]
但是
x
y
是浮点数组,因此不能将它们用作数组索引。
image[int(y[i]),int(x[i])]