本文整理汇总了Python中autograd.numpy.vstack方法的典型用法代码示例。如果您正苦于以下问题:Python numpy.vstack方法的具体用法?Python numpy.vstack怎么用?Python numpy.vstack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类autograd.numpy
的用法示例。
在下文中一共展示了numpy.vstack方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: make_IO_matrices
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def make_IO_matrices(indices, N):
""" Makes matrices that relate the sparse matrix entries to their locations in the matrix
The kth column of I is a 'one hot' vector specifing the k-th entries row index into A
The kth column of J is a 'one hot' vector specifing the k-th entries columnn index into A
O = J^T is for notational convenience.
Armed with a vector of M entries 'a', we can construct the sparse matrix 'A' as:
A = I @ diag(a) @ O
where 'diag(a)' is a (MxM) matrix with vector 'a' along its diagonal.
In index notation:
A_ij = I_ik * a_k * O_kj
In an opposite way, given sparse matrix 'A' we can strip out the entries `a` using the IO matrices as follows:
a = diag(I^T @ A @ O^T)
In index notation:
a_k = I_ik * A_ij * O_kj
"""
M = indices.shape[1] # number of indices in the matrix
entries_1 = npa.ones(M) # M entries of all 1's
ik, jk = indices # separate i and j components of the indices
indices_I = npa.vstack((ik, npa.arange(M))) # indices into the I matrix
indices_J = npa.vstack((jk, npa.arange(M))) # indices into the J matrix
I = make_sparse(entries_1, indices_I, shape=(N, M)) # construct the I matrix
J = make_sparse(entries_1, indices_J, shape=(N, M)) # construct the J matrix
O = J.T # make O = J^T matrix for consistency with my notes.
return I, O
示例2: _make_A
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def _make_A(self, eps_vec):
eps_vec_xx, eps_vec_yy = self._grid_average_2d(eps_vec)
eps_vec_xx_inv = 1 / (eps_vec_xx + 1e-5) # the 1e-5 is for numerical stability
eps_vec_yy_inv = 1 / (eps_vec_yy + 1e-5) # autograd throws 'divide by zero' errors.
indices_diag = npa.vstack((npa.arange(self.N), npa.arange(self.N)))
entries_DxEpsy, indices_DxEpsy = spsp_mult(self.entries_Dxb, self.indices_Dxb, eps_vec_yy_inv, indices_diag, self.N)
entires_DxEpsyDx, indices_DxEpsyDx = spsp_mult(entries_DxEpsy, indices_DxEpsy, self.entries_Dxf, self.indices_Dxf, self.N)
entries_DyEpsx, indices_DyEpsx = spsp_mult(self.entries_Dyb, self.indices_Dyb, eps_vec_xx_inv, indices_diag, self.N)
entires_DyEpsxDy, indices_DyEpsxDy = spsp_mult(entries_DyEpsx, indices_DyEpsx, self.entries_Dyf, self.indices_Dyf, self.N)
entries_d = 1 / EPSILON_0 * npa.hstack((entires_DxEpsyDx, entires_DyEpsxDy))
indices_d = npa.hstack((indices_DxEpsyDx, indices_DyEpsxDy))
entries_diag = MU_0 * self.omega**2 * npa.ones(self.N)
entries_a = npa.hstack((entries_d, entries_diag))
indices_a = npa.hstack((indices_d, indices_diag))
return entries_a, indices_a
示例3: job_me_opt
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def job_me_opt(p, data_source, tr, te, r, J=5):
"""
ME test of Jitkrittum et al., 2016 used as a goodness-of-fit test.
Gaussian kernel. Optimize test locations and Gaussian width.
"""
data = tr + te
X = data.data()
with util.ContextTimer() as t:
# median heuristic
#pds = p.get_datasource()
#datY = pds.sample(data.sample_size(), seed=r+294)
#Y = datY.data()
#XY = np.vstack((X, Y))
#med = util.meddistance(XY, subsample=1000)
op = {'n_test_locs': J, 'seed': r+5, 'max_iter': 40,
'batch_proportion': 1.0, 'locs_step_size': 1.0,
'gwidth_step_size': 0.1, 'tol_fun': 1e-4,
'reg': 1e-4}
# optimize on the training set
me_opt = tgof.GaussMETestOpt(p, n_locs=J, tr_proportion=tr_proportion,
alpha=alpha, seed=r+111)
me_result = me_opt.perform_test(data, op)
return { 'test_result': me_result, 'time_secs': t.secs}
示例4: sample
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def sample(self, n, seed=29):
pmix = self.pmix
means = self.means
variances = self.variances
k, d = self.means.shape
sam_list = []
with util.NumpySeedContext(seed=seed):
# counts for each mixture component
counts = np.random.multinomial(n, pmix, size=1)
# counts is a 2d array
counts = counts[0]
# For each component, draw from its corresponding mixture component.
for i, nc in enumerate(counts):
# Sample from ith component
sam_i = np.random.randn(nc, d)*np.sqrt(variances[i]) + means[i]
sam_list.append(sam_i)
sample = np.vstack(sam_list)
assert sample.shape[0] == n
np.random.shuffle(sample)
return Data(sample)
# end of class DSIsoGaussianMixture
示例5: _ntied_transmat_prior
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def _ntied_transmat_prior(self, transmat_val): # TODO: document choices
transmat = np.empty((0, self.n_components))
for r in range(self.n_unique):
row = np.empty((self.n_chain, 0))
for c in range(self.n_unique):
if r == c:
subm = np.array(sp.diags([transmat_val[r, c],
1.0], [0, 1],
shape=(self.n_chain, self.n_chain)).todense())
else:
lower_left = np.zeros((self.n_chain, self.n_chain))
lower_left[self.n_tied, 0] = 1.0
subm = np.kron(transmat_val[r, c], lower_left)
row = np.hstack((row, subm))
transmat = np.vstack((transmat, row))
return transmat
示例6: get_sharp_TE_airfoil
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def get_sharp_TE_airfoil(self):
# Returns a version of the airfoil with a sharp trailing edge.
upper_original_coors = self.upper_coordinates() # Note: includes leading edge point, be careful about duplicates
lower_original_coors = self.lower_coordinates() # Note: includes leading edge point, be careful about duplicates
# Find data about the TE
# Get the scale factor
x_mcl = self.mcl_coordinates[:, 0]
x_max = np.max(x_mcl)
x_min = np.min(x_mcl)
scale_factor = (x_mcl - x_min) / (x_max - x_min) # linear contraction
# Do the contraction
upper_minus_mcl_adjusted = self.upper_minus_mcl - self.upper_minus_mcl[-1, :] * np.expand_dims(scale_factor, 1)
# Recreate coordinates
upper_coordinates_adjusted = np.flipud(self.mcl_coordinates + upper_minus_mcl_adjusted)
lower_coordinates_adjusted = self.mcl_coordinates - upper_minus_mcl_adjusted
coordinates = np.vstack((
upper_coordinates_adjusted[:-1, :],
lower_coordinates_adjusted
))
# Make a new airfoil with the coordinates
name = self.name + ", with sharp TE"
new_airfoil = Airfoil(name=name, coordinates=coordinates, repanel=False)
return new_airfoil
示例7: add_control_surface
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def add_control_surface(self, deflection=0., hinge_point=0.75):
# Returns a version of the airfoil with a control surface added at a given point.
# Inputs:
# # deflection: the deflection angle, in degrees. Downwards-positive.
# # hinge_point: the location of the hinge, as a fraction of chord.
# Make the rotation matrix for the given angle.
sintheta = np.sin(np.radians(-deflection))
costheta = np.cos(np.radians(-deflection))
rotation_matrix = np.array(
[[costheta, -sintheta],
[sintheta, costheta]]
)
# Find the hinge point
hinge_point = np.array(
(hinge_point, self.get_camber_at_chord_fraction(hinge_point))) # Make hinge_point a vector.
# Split the airfoil into the sections before and after the hinge
split_index = np.where(self.mcl_coordinates[:, 0] > hinge_point[0])[0][0]
mcl_coordinates_before = self.mcl_coordinates[:split_index, :]
mcl_coordinates_after = self.mcl_coordinates[split_index:, :]
upper_minus_mcl_before = self.upper_minus_mcl[:split_index, :]
upper_minus_mcl_after = self.upper_minus_mcl[split_index:, :]
# Rotate the mean camber line (MCL) and "upper minus mcl"
new_mcl_coordinates_after = np.transpose(
rotation_matrix @ np.transpose(mcl_coordinates_after - hinge_point)) + hinge_point
new_upper_minus_mcl_after = np.transpose(rotation_matrix @ np.transpose(upper_minus_mcl_after))
# Do blending
# Assemble airfoil
new_mcl_coordinates = np.vstack((mcl_coordinates_before, new_mcl_coordinates_after))
new_upper_minus_mcl = np.vstack((upper_minus_mcl_before, new_upper_minus_mcl_after))
upper_coordinates = np.flipud(new_mcl_coordinates + new_upper_minus_mcl)
lower_coordinates = new_mcl_coordinates - new_upper_minus_mcl
coordinates = np.vstack((upper_coordinates, lower_coordinates[1:, :]))
new_airfoil = Airfoil(name=self.name + " flapped", coordinates=coordinates, repanel=False)
return new_airfoil # TODO fix self-intersecting airfoils at high deflections
示例8: convert_results
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def convert_results(results, interface):
"""Convert a list of results coming from multiple QNodes
to the object required by each interface for auto-differentiation.
Internally, this method makes use of ``tf.stack``, ``torch.stack``,
and ``np.vstack``.
Args:
results (list): list containing the results from
multiple QNodes
interface (str): the interfaces of the underlying QNodes
Returns:
list or array or torch.Tensor or tf.Tensor: the converted
and stacked results.
"""
if interface == "tf":
import tensorflow as tf
return tf.stack(results)
if interface == "torch":
import torch
return torch.stack(results, dim=0)
if interface in ("autograd", "numpy"):
from autograd import numpy as np
return np.stack(results)
return results
示例9: gmm_log_likelihood
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def gmm_log_likelihood(params, data):
cluster_lls = []
for log_proportion, mean, cov_sqrt in zip(*unpack_gmm_params(params)):
cov = np.dot(cov_sqrt.T, cov_sqrt)
cluster_lls.append(log_proportion + mvn.logpdf(data, mean, cov))
return np.sum(logsumexp(np.vstack(cluster_lls), axis=0))
示例10: plot_ellipse
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def plot_ellipse(ax, mean, cov_sqrt, alpha, num_points=100):
angles = np.linspace(0, 2*np.pi, num_points)
circle_pts = np.vstack([np.cos(angles), np.sin(angles)]).T * 2.0
cur_pts = mean + np.dot(circle_pts, cov_sqrt)
ax.plot(cur_pts[:, 0], cur_pts[:, 1], '-', alpha=alpha)
示例11: test_jacobian_against_stacked_grads
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def test_jacobian_against_stacked_grads():
scalar_funs = [
lambda x: np.sum(x**3),
lambda x: np.prod(np.sin(x) + np.sin(x)),
lambda x: grad(lambda y: np.exp(y) * np.tanh(x[0]))(x[1])
]
vector_fun = lambda x: np.array([f(x) for f in scalar_funs])
x = npr.randn(5)
jac = jacobian(vector_fun)(x)
grads = [grad(f)(x) for f in scalar_funs]
assert np.allclose(jac, np.vstack(grads))
示例12: test_vstack_1d
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def test_vstack_1d(): combo_check(np.vstack, [0])([R(2), (R(2), R(2))])
示例13: test_vstack_3d
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def test_vstack_3d(): combo_check(np.vstack, [0])([R(2, 3, 4), (R(2, 3, 4), R(5, 3, 4))])
示例14: get_entries_indices
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def get_entries_indices(csr_matrix):
# takes sparse matrix and returns the entries and indeces in form compatible with 'make_sparse'
shape = csr_matrix.shape
coo_matrix = csr_matrix.tocoo()
entries = csr_matrix.data
cols = coo_matrix.col
rows = coo_matrix.row
indices = npa.vstack((rows, cols))
return entries, indices
示例15: block_4
# 需要导入模块: from autograd import numpy [as 别名]
# 或者: from autograd.numpy import vstack [as 别名]
def block_4(A, B, C, D):
""" Constructs a big matrix out of four sparse blocks
returns [A B]
[C D]
"""
left = sp.vstack([A, C])
right = sp.vstack([B, D])
return sp.hstack([left, right])