本文整理匯總了Python中numpy.poly1d方法的典型用法代碼示例。如果您正苦於以下問題:Python numpy.poly1d方法的具體用法?Python numpy.poly1d怎麽用?Python numpy.poly1d使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類numpy
的用法示例。
在下文中一共展示了numpy.poly1d方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: remove_linear_BG_XAS_preedge
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def remove_linear_BG_XAS_preedge(
xmcd_data, scanparams, process_parameters=None, process_number=-1
):
"""Should remove a linear bg based on the preedge average"""
preedge_spectrum = get_preedge_spectrum(process_parameters, xmcd_data)
preedge_poly = np.poly1d(
np.polyfit(preedge_spectrum["Energy"], preedge_spectrum["XAS"], 1)
)
xas_bg = preedge_poly(xmcd_data["Energy"])
for xas in ["XAS+", "XAS-", "XAS"]:
xmcd_data[xas] -= xas_bg
return (xmcd_data, {"xas_bg_poly_coeffs": " ".join(map(str, preedge_poly.coeffs))})
示例2: _break_points
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def _break_points(num, den):
"""Extract break points over real axis and gains given these locations"""
# type: (np.poly1d, np.poly1d) -> (np.array, np.array)
dnum = num.deriv(m=1)
dden = den.deriv(m=1)
polynom = den * dnum - num * dden
real_break_pts = polynom.r
# don't care about infinite break points
real_break_pts = real_break_pts[num(real_break_pts) != 0]
k_break = -den(real_break_pts) / num(real_break_pts)
idx = k_break >= 0 # only positives gains
k_break = k_break[idx]
real_break_pts = real_break_pts[idx]
if len(k_break) == 0:
k_break = [0]
real_break_pts = den.roots
return k_break, real_break_pts
示例3: test_poly1d_str_and_repr
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def test_poly1d_str_and_repr(self):
p = np.poly1d([1., 2, 3])
assert_equal(repr(p), 'poly1d([1., 2., 3.])')
assert_equal(str(p),
' 2\n'
'1 x + 2 x + 3')
q = np.poly1d([3., 2, 1])
assert_equal(repr(q), 'poly1d([3., 2., 1.])')
assert_equal(str(q),
' 2\n'
'3 x + 2 x + 1')
r = np.poly1d([1.89999 + 2j, -3j, -5.12345678, 2 + 1j])
assert_equal(str(r),
' 3 2\n'
'(1.9 + 2j) x - 3j x - 5.123 x + (2 + 1j)')
assert_equal(str(np.poly1d([-3, -2, -1])),
' 2\n'
'-3 x - 2 x - 1')
示例4: test_poly1d_math
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def test_poly1d_math(self):
# here we use some simple coeffs to make calculations easier
p = np.poly1d([1., 2, 4])
q = np.poly1d([4., 2, 1])
assert_equal(p/q, (np.poly1d([0.25]), np.poly1d([1.5, 3.75])))
assert_equal(p.integ(), np.poly1d([1/3, 1., 4., 0.]))
assert_equal(p.integ(1), np.poly1d([1/3, 1., 4., 0.]))
p = np.poly1d([1., 2, 3])
q = np.poly1d([3., 2, 1])
assert_equal(p * q, np.poly1d([3., 8., 14., 8., 3.]))
assert_equal(p + q, np.poly1d([4., 4., 4.]))
assert_equal(p - q, np.poly1d([-2., 0., 2.]))
assert_equal(p ** 4, np.poly1d([1., 8., 36., 104., 214., 312., 324., 216., 81.]))
assert_equal(p(q), np.poly1d([9., 12., 16., 8., 6.]))
assert_equal(q(p), np.poly1d([3., 12., 32., 40., 34.]))
assert_equal(p.deriv(), np.poly1d([2., 2.]))
assert_equal(p.deriv(2), np.poly1d([2.]))
assert_equal(np.polydiv(np.poly1d([1, 0, -1]), np.poly1d([1, 1])),
(np.poly1d([1., -1.]), np.poly1d([0.])))
示例5: data_analysis
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def data_analysis(e_ph, flux, method="least"):
if method == "least":
coeffs = np.polyfit(x=e_ph, y=flux, deg=11)
polynom = np.poly1d(coeffs)
x = np.linspace(e_ph[0], e_ph[-1], num=100)
pd = np.polyder(polynom, m=1)
indx = np.argmax(np.abs(pd(x)))
eph_c = x[indx]
pd2 = np.polyder(polynom, m=2)
p2_roots = np.roots(pd2)
p2_roots = p2_roots[p2_roots[:].imag == 0]
p2_roots = np.real(p2_roots)
Eph_fin = find_nearest(p2_roots,eph_c)
return Eph_fin, polynom
elif method == "new method":
pass
#plt.plot(Etotal, total, "ro")
#plt.plot(x, polynom(x))
示例6: __init__
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def __init__(self, roots, weights=None, hn=1.0, kn=1.0, wfunc=None, limits=None, monic=0,eval_func=None):
np.poly1d.__init__(self, roots, r=1)
equiv_weights = [weights[k] / wfunc(roots[k]) for k in range(len(roots))]
self.__dict__['weights'] = np.array(list(zip(roots,weights,equiv_weights)))
self.__dict__['weight_func'] = wfunc
self.__dict__['limits'] = limits
mu = sqrt(hn)
if monic:
evf = eval_func
if evf:
eval_func = lambda x: evf(x)/kn
mu = mu / abs(kn)
kn = 1.0
self.__dict__['normcoef'] = mu
self.__dict__['coeffs'] *= kn
# Note: eval_func will be discarded on arithmetic
self.__dict__['_eval_func'] = eval_func
示例7: fit_y
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def fit_y(self, X, Y, x1, x2):
len(X) != 0
# if X only include one point, the function will get line y=Y[0]
if np.sum(X == X[0]) == len(X):
return Y[0], Y[0]
p = np.poly1d(np.polyfit(X, Y, 1))
return p(x1), p(x2)
示例8: _systopoly1d
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def _systopoly1d(sys):
"""Extract numerator and denominator polynomails for a system"""
# Allow inputs from the signal processing toolbox
if (isinstance(sys, scipy.signal.lti)):
nump = sys.num
denp = sys.den
else:
# Convert to a transfer function, if needed
sys = _convert_to_transfer_function(sys)
# Make sure we have a SISO system
if (sys.inputs > 1 or sys.outputs > 1):
raise ControlMIMONotImplemented()
# Start by extracting the numerator and denominator from system object
nump = sys.num[0][0]
denp = sys.den[0][0]
# Check to see if num, den are already polynomials; otherwise convert
if (not isinstance(nump, poly1d)):
nump = poly1d(nump)
if (not isinstance(denp, poly1d)):
denp = poly1d(denp)
return (nump, denp)
示例9: quadraticInterpolation
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def quadraticInterpolation(valueList2d, numDegrees, n,
startTime=None, endTime=None):
'''
Generates a series of points on a smooth curve that cross the given points
numDegrees - the degrees of the fitted polynomial
- the curve gets weird if this value is too high for the input
n - number of points to output
startTime/endTime/n - n points will be generated at evenly spaced
intervals between startTime and endTime
'''
_numpyCheck()
x, y = zip(*valueList2d)
if startTime is None:
startTime = x[0]
if endTime is None:
endTime = x[-1]
polyFunc = np.poly1d(np.polyfit(x, y, numDegrees))
newX = np.linspace(startTime, endTime, n)
retList = [(n, polyFunc(n)) for n in newX]
return retList
示例10: fit_polynomial
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def fit_polynomial(leftx, lefty, rightx, righty, out_img):
"""
fit left and right lane polynomi
"""
# check if there is search failure
if leftx.size == 0 or lefty.size == 0:
cv2.putText(out_img,"Search failure", (50,60), cv2.FONT_HERSHEY_SIMPLEX,2,(255,0,255),3)
return out_img
# line fit use np.ployfit, second order, note lefty is x, leftx is y, later use ploty to get plotx
left_fit = np.polyfit(lefty, leftx, 2)
right_fit = np.polyfit(righty, rightx, 2)
# print(left_fit)
# print(right_fit)
left_lane_fun = np.poly1d(left_fit)
right_lane_fun = np.poly1d(right_fit)
# Generate x and y values for plotting
ploty = np.linspace(0, out_img.shape[0]-1, out_img.shape[0])
left_plotx = left_lane_fun(ploty)
right_plotx = right_lane_fun(ploty)
# Visualization
# Colors in the left and right lane regions
out_img[lefty, leftx] = [255, 0, 0]
out_img[righty, rightx] = [0 ,0 , 255]
# draw fit line(sue 9 stright line)
for i in range(0, 9):
cv2.line(out_img, (int(left_plotx[i*79]), int(ploty[i*79])), (int(left_plotx[(i+1)*79]), int(ploty[(i+1)*79])), (255,255,0),2)
cv2.line(out_img, (int(right_plotx[i*79]), int(ploty[i*79])), (int(right_plotx[(i+1)*79]), int(ploty[(i+1)*79])), (255,255,0),2)
# Plots the left and right polynomials on the lane lines
# plt.plot(left_plotx, ploty, color='yellow')
# plt.plot(right_plotx, ploty, color='yellow')
# print(len(leftx))
# print(len(ploty))
return out_img
示例11: get_polynomial
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def get_polynomial(leftx, lefty, rightx, righty, img_size):
left_fit = np.polyfit(lefty, leftx, 2)
right_fit = np.polyfit(righty, rightx, 2)
left_lane_fun = np.poly1d(left_fit)
right_lane_fun = np.poly1d(right_fit)
ploty = ploty = np.linspace(0, img_size[0]-1, img_size[0])
left_fitx = left_lane_fun(ploty)
right_fitx = right_lane_fun(ploty)
return left_fitx, right_fitx, ploty
示例12: measure_offset
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def measure_offset(leftx, lefty, rightx, righty, ym_per_pix=30/720, xm_per_pix=3.7/700):
'''
calculate the the offest from lane center
'''
# HYPOTHESIS : the camera is mounted at the center of the car
# the offset of the lane center from the center of the image is
# distance from the center of lane
# Transform pixel to meters
leftx = leftx * xm_per_pix
lefty = lefty * ym_per_pix
rightx = rightx * xm_per_pix
righty = righty * ym_per_pix
# fit the polynomial
left_fit_cr = np.polyfit(lefty, leftx, 2)
right_fit_cr = np.polyfit(righty, rightx, 2)
# Define y-value where we want radius of curvature
# choose the maximum y-value
y_eval = Y_MAX * ym_per_pix
left_point = np.poly1d(left_fit_cr)(y_eval)
right_point = np.poly1d(right_fit_cr)(y_eval)
lane_center = (left_point + right_point) / 2
image_center = X_MAX * xm_per_pix / 2
offset = lane_center - image_center
return offset
示例13: fit_y
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def fit_y(self, X, Y, x1, x2):
"""
一元線性函數擬合X,Y,並返回x1,x2的的函數值
"""
len(X) != 0
# 隻有一個點返回 y=Y[0]
if np.sum(X == X[0]) == len(X):
return Y[0], Y[0]
p = np.poly1d(np.polyfit(X, Y, 1))
return p(x1), p(x2)
示例14: linear_fit_y
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def linear_fit_y(xs, ys, x_list):
"""
線性函數擬合兩點(x1,y1),(x2,y2);並求得x_list在的取值
:param xs: [x1,x2]
:param ys: [y1,y2]
:param x_list: x軸坐標點,numpy數組 [n]
:return:
"""
if xs[0] == xs[1]: # 垂直線
return np.ones_like(x_list) * np.mean(ys)
elif ys[0] == ys[1]: # 水平線
return np.ones_like(x_list) * ys[0]
else:
fn = np.poly1d(np.polyfit(xs, ys, 1)) # 一元線性函數
return fn(x_list)
示例15: test_poly1d_resolution
# 需要導入模塊: import numpy [as 別名]
# 或者: from numpy import poly1d [as 別名]
def test_poly1d_resolution(self):
p = np.poly1d([1., 2, 3])
q = np.poly1d([3., 2, 1])
assert_equal(p(0), 3.0)
assert_equal(p(5), 38.0)
assert_equal(q(0), 1.0)
assert_equal(q(5), 86.0)