小编use*_*919的帖子

TypeError:'function'对象没有属性'__getitem__'

在python中编写一些代码来评估基本函数.我有一个带有一些值的二维数组,我想将这个函数应用于每个值并获得一个新的二维数组:

import numpy as N
def makeGrid(dim):
    ''' Function to return a grid of distances from the centre of an array.
    This version uses loops to fill the array and is thus slow.'''
    tabx = N.arange(dim) - float(dim/2.0) + 0.5
    taby = N.arange(dim) - float(dim/2.0) + 0.5
    grid = N.zeros((dim,dim), dtype='float')
    for y in range(dim):
        for x in range(dim):
            grid[y,x] = N.sqrt(tabx[x]**2 + taby[y]**2)
    return grid

import math

def BigGrid(dim):
    l= float(raw_input('Enter a value for lambda: '))
    p= float(raw_input('Enter a …
Run Code Online (Sandbox Code Playgroud)

python arrays function

10
推荐指数
2
解决办法
6万
查看次数

使用np.polyfit在3维中拟合多项式

我有一个数据数组,其中某个整数N的维度为(N,3),它指定了3D空间中粒子的轨迹,即每个行条目是粒子的(x,y,z)坐标.这个轨迹是平滑且简单的,我希望能够将多项式拟合到这个数据.

我可以使用np.polyfit只用(x,y)坐标来做到这一点:

import numpy as np

#Load the data
some_file = 'import_file.txt'

data = np.loadtxt(some_file)
x = data[:,0]
y = data[:,1]

#Fit a 4th order polynomial
fit = np.polyfit(x,y,4)
Run Code Online (Sandbox Code Playgroud)

这给了我多项式的系数,没有问题.

我如何将其扩展到我需要描述x,y,z坐标的多项式的情况?

python numpy polynomials

6
推荐指数
2
解决办法
4601
查看次数

如何为在 Python 中更新的条形字符设置动画

我想创建一个动画的堆积条形图。

有一个很棒的教程,它展示了如何为折线图制作动画。

但是,对于动画条形图,BarContainer 对象没有“set_data”的任何属性。因此,我每次都被迫清除图形轴,例如,

fig=plt.figure()

def init():
    plt.cla()

def animate(i):

    p1 = plt.bar(x_points,y_heights,width,color='b')

return p1


anim = animation.FuncAnimation(fig,animate,init_func=init,frames=400,interval=10,blit=False)
Run Code Online (Sandbox Code Playgroud)

是否有另一种选择,遵循链接的样式,这样我就不必每次都清除轴?谢谢。

python animation matplotlib

5
推荐指数
2
解决办法
3381
查看次数

尝试使用 scipy 将三角函数拟合到数据

我正在尝试使用scipy.optimize.curve_fit. 我已经阅读了文档这篇 StackOverflow 帖子,但似乎都没有回答我的问题。

我有一些简单的 2D 数据,它们看起来近似于一个三角函数。我想使用scipy.

我的方法如下:

from __future__ import division
import numpy as np
from scipy.optimize import curve_fit



#Load the data
data = np.loadtxt('example_data.txt')
t = data[:,0]
y = data[:,1]


#define the function to fit
def func_cos(t,A,omega,dphi,C):
    # A is the amplitude, omega the frequency, dphi and C the horizontal/vertical shifts
    return A*np.cos(omega*t + dphi) + C

#do a scipy fit
popt, pcov = curve_fit(func_cos, t,y)

#Plot fit …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting scipy scipy-optimize

3
推荐指数
1
解决办法
79
查看次数

如何在 Python 中随机分布 N 个质量,使它们遵循 Plummer 密度分布

我正在用Python工作。我有N星星,每颗星星的质量都是一个太阳质量M_0。我想将这些恒星随机分布在半径为 的体积中R,使得密度分布遵循普卢默模型,由以下公式给出:

在此输入图像描述

我知道M在这种情况下这是总簇质量M=NM_0,但不确定我将如何编码这种质量分布。

python physics

2
推荐指数
1
解决办法
1775
查看次数

Fortran 中 Sin 与 Cos 函数的精度

考虑代码,

PROGRAM TRIG_TEST
IMPLICIT NONE

DOUBLE PRECISION, PARAMETER :: PI=4.D0*DATAN(1.0D)

print *, sin(PI/2.0), cos(PI/2.0)

END PROGRAM TRIG_TEST
Run Code Online (Sandbox Code Playgroud)

编译gfortran输出,

1.0000000000000000 6.1232339957367660E-017
Run Code Online (Sandbox Code Playgroud)

我知道常见的浮点问题,但是函数sin完全相同 1 但cos函数不完全相同 0 是否有原因?

floating-point precision fortran gfortran

2
推荐指数
1
解决办法
2217
查看次数

Fortran / gfortran的幂运算达到高精度

gfortran如何处理整数与实数的幂运算?我一直以为是相同的,但请考虑以下示例:

program main

implicit none

integer, parameter :: dp = selected_real_kind(33,4931)

real(kind=dp) :: x = 82.4754500815524510_dp

print *, x
print *, x**4
print *, x**4.0_dp

end program main
Run Code Online (Sandbox Code Playgroud)

用gfortran编译给出

82.4754500815524510000000000000000003      
46269923.0191143410452125643548442147      
46269923.0191143410452125643548442211 
Run Code Online (Sandbox Code Playgroud)

现在,显然这些数字几乎是一致的-但是,如果gfortran以相同的方式处理整数和实数以求幂,我希望它们是相同的。是什么赋予了?

floating-point fortran gfortran exponentiation

2
推荐指数
1
解决办法
166
查看次数

极坐标图在matplotlib中给出了错误的角度

我试图在Python中绘制一个右升天 - 赤纬,极坐标图,其中角度表示正确的提升,半径为赤纬,范围在±30之间.

我的代码是

import numpy
import matplotlib.pyplot as pyplot

ra = [345.389547454166689,31.892236646759279,45.893722479722229,93.955296573703706,160.079453957685217,211.154701609814822,256.486559377222193,307.258751710462889,299.691923545370344,340.364168244814834,335.077343971296386,358.126565808425880]
dec = [23.835021447037050,25.218513920000003,27.509148433518519,26.551432991388879,-25.077519630833340,-20.134061982500004,-21.042512836851849,-4.903512838240742,-0.506450475370370,14.280932901944448,19.222101837500002,18.792707990925926]   

fig = pyplot.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8],polar=True)
ax.set_ylim(-30,30)
ax.set_yticks(numpy.arange(-30,30,10))
ax.scatter(ra,dec,c ='r')


pyplot.show()    
Run Code Online (Sandbox Code Playgroud)

这将生成以下图表: 在此输入图像描述

显然,我误解了极坐标图是如何工作的,因为RA与θ= 0的角度不对应.例如,我的一个点应该具有RA = 45.89度,但似乎没有任何点对应于此.

关于我做错了什么的建议?

python matplotlib polar-coordinates

1
推荐指数
1
解决办法
1914
查看次数

在 Python/Numba 中添加不同形状的矩阵的最快方法

我想“添加”两个矩阵,一个形状a为 ( K,T) 的矩阵和一个形状b为 的矩阵(K,N),以产生形状为 的矩阵(K,T,N

以下工作正常:


import numpy as np 
from numba import njit

@njit
def add_matrices(a, b):
    K, T, N = a.shape[0], a.shape[1], b.shape[1]
    result_matrix = np.empty((K, T, N))
    
    for k in range(K):
        for t in range(T):
            for n in range(N):
                result_matrix[k, t, n] = a[k, t] + b[k, n]
    
    return result_matrix


K = 10
T = 11
N = 12
a = np.ones((K,T))
b = np.ones((K,N))

result = …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix vectorization numba

1
推荐指数
1
解决办法
98
查看次数