块向量

(类来自 pyomo.contrib.pynumero.sparse.block_vector)

class pyomo.contrib.pynumero.sparse.block_vector.BlockVector(nblocks)[source]

基础类:BaseBlockVector, ndarray

结构化向量接口。此接口可用于对由向量组成的向量执行操作。例如,

>>> import numpy as np
>>> from pyomo.contrib.pynumero.sparse import BlockVector
>>> bv = BlockVector(3)
>>> v0 = np.ones(3)
>>> v1 = v0*2
>>> v2 = np.random.normal(size=4)
>>> bv.set_block(0, v0)
>>> bv.set_block(1, v1)
>>> bv.set_block(2, v2)
>>> bv2 = BlockVector(2)
>>> bv2.set_block(0, v0)
>>> bv2.set_block(1, bv)
_nblocks

块数

Type:

int

_brow_lengths

大小为nblocks的一维数组,指定块向量中每个条目的长度

Type:

numpy.ndarray

_undefined_brows

一组块索引,这些块的维度尚未设置(即,这些块仍为None)。使用BlockVectors进行操作时,要求所有条目都不为None。

Type:

set

Parameters:

nblocks (int) – BlockVector中的块数

__init__(nblocks)[source]

方法

__init__(nblocks)

all([axis, out, keepdims])

如果所有元素的评估结果都为True,则返回True。

any([axis, out, keepdims])

如果任何元素评估为True,则返回True。

argmax([axis, out])

返回最大元素的索引。

argmin([axis, out])

返回最小元素的索引。

argpartition(kth[, axis, kind, order])

返回将分区此数组的索引。

argsort([axis, kind, order])

返回将对此数组进行排序的索引。

astype(dtype[, order, casting, subok, copy])

数组的副本,转换为指定类型

block_sizes([copy])

返回一个包含此BlockVector中各个块大小的1D数组

byteswap([inplace])

交换数组元素的字节

choose(choices[, out, mode])

使用索引数组从一组选择中构造一个新数组。

clip([min, max, out])

返回BlockVector,其值限制在[min, max]范围内。

clone([value, copy])

返回此BlockVector的副本

compress(condition[, axis, out])

返回每个子块的选定切片。

conj()

对所有元素进行复共轭。

conjugate()

对所有元素进行复共轭。

copy([order])

返回BlockVector的副本

copy_structure()

返回一个填充了零的BlockVector结构的副本

copyfrom(other)

将其他向量的条目复制到此向量中

copyto(other)

将此BlockVector的条目复制到其他

cumprod([axis, dtype, out])

返回沿给定轴元素的累积乘积。

cumsum([axis, dtype, out])

返回沿给定轴的元素累积和。

diagonal([offset, axis1, axis2])

返回指定的对角线。

dot(other[, out])

返回点积

dump(文件)

将数组的pickle转储到指定的文件中。

dumps()

返回数组的pickle作为字符串。

fill(value)

用标量值填充BlockVector。

flatten([order])

将BlockVector转换为NumPy数组。

get_block(key)

访问一个块。

get_block_size(ndx)

getfield(dtype[, offset])

返回给定数组的某个字段作为特定类型。

is_block_defined(ndx)

item(*args)

将数组的一个元素复制到一个标准的Python标量并返回它。

itemset(*args)

max([axis, out, keepdims])

返回存储在此BlockVector中的最大值

mean([axis, dtype, out, keepdims])

返回此BlockVector中所有条目的平均值

min([axis, out, keepdims])

返回向量中存储的最小值

newbyteorder([new_order])

nonzero()

返回非零元素的索引。

partition(kth[, axis, kind, order])

部分排序数组中的元素,使得第k个位置的元素值处于其在排序数组中的位置。

pprint()

以漂亮的格式打印BlockVector

prod([axis, dtype, out, keepdims])

返回此BlockVector中所有条目的乘积

put(indices, values[, mode])

为所有在索引中的n设置a.flat[n] = values[n]

ravel([order])

将BlockVector转换为NumPy数组。

repeat(repeats[, axis])

重复数组的元素。

reshape(shape, /, *[, order, copy])

返回一个包含相同数据但具有新形状的数组。

resize(new_shape[, refcheck])

就地更改数组的形状和大小。

round([decimals, out])

返回BlockVector,其中每个元素四舍五入到指定的小数位数

searchsorted(v[, side, sorter])

找到在a中插入v元素的索引以保持顺序。

set_block(key, value)

设置一个块。

set_blocks(blocks)

以块为单位分配向量

setfield(val, dtype[, offset])

将值放入由数据类型定义的字段中的指定位置。

setflags([write, align, uic])

分别设置数组标志为WRITEABLE、ALIGNED、WRITEBACKIFCOPY。

sort([axis, kind, order])

原地排序数组。

squeeze([axis])

a中移除长度为1的轴。

std([axis, dtype, out, ddof, keepdims])

返回BlockVector元素的标准差。

sum([axis, dtype, out, keepdims])

返回此BlockVector中所有条目的总和

swapaxes(axis1, axis2)

返回一个数组视图,其中axis1axis2互换。

take(indices[, axis, out, mode])

返回一个由a中给定索引处的元素组成的数组。

toMPIBlockVector(rank_ownership, mpi_comm[, ...])

从此BlockVector创建一个并行的MPIBlockVector

to_device

tobytes([order])

构造包含数组中原始数据字节的Python字节。

tofile(fid[, sep, format])

将BlockVector的平面版本写入文件,格式为文本或二进制(默认)。

tolist()

返回展平为列表的BlockVector。

tostring([order])

~ndarray.tobytes 的兼容别名,行为完全相同。

trace([offset, axis1, axis2, dtype, out])

返回数组对角线上的和。

transpose(*axes)

返回数组的转置轴视图。

var([axis, dtype, out, ddof, keepdims])

返回BlockVector元素的方差。

view([dtype][, type])

具有相同数据的数组的新视图。

属性

T

转置数组的视图。

base

如果内存来自其他对象,则为基本对象。

bshape

返回此BlockVector中的块数,以元组形式表示。

ctypes

一个用于简化数组与ctypes模块交互的对象。

data

指向数组数据起始位置的Python缓冲区对象。

device

dtype

数组元素的数据类型。

flags

有关数组内存布局的信息。

flat

数组的一维迭代器。

has_none

指示此BlockVector是否有任何非零条目。

imag

数组的虚部。

itemsize

一个数组元素的长度(以字节为单位)。

mT

矩阵转置数组的视图。

nblocks

返回块的数量。

nbytes

数组元素消耗的总字节数。

ndim

返回此BlockVector的维度

ptp

real

数组的实部。

shape

返回此BlockVector中的元素总数

size

返回此BlockVector中的元素总数

strides

遍历数组时在每个维度上步进的字节元组。

成员文档

all(axis=None, out=None, keepdims=False)[source]

如果所有元素的评估结果都为True,则返回True。

any(axis=None, out=None, keepdims=False)[source]

如果任何元素评估为True,则返回True。

argmax(axis=None, out=None)[source]

返回最大元素的索引。

argmin(axis=None, out=None)[source]

返回最小元素的索引。

astype(dtype, order='K', casting='unsafe', subok=True, copy=True)[source]

数组的副本,转换为指定类型

block_sizes(copy=True)[source]

返回一个包含此BlockVector中各个块大小的1D数组

clip(min=None, max=None, out=None)[source]

返回一个值限制在[min, max]范围内的BlockVector。 必须提供max或min中的一个。

Parameters:
  • min (scalar_like, optional) – 最小值。如果为None,则不对下限进行裁剪。

  • max (scalar_like, optional) – 最大值。如果为None,则不执行上区间边缘的裁剪。

Return type:

BlockVector

clone(value=None, copy=True)[source]

返回此BlockVector的副本

Parameters:
  • value (标量 (可选)) – 克隆向量的所有条目都设置为该值

  • 复制 (bool (可选)) – 如果为True,则对此向量中的每个块进行深拷贝。默认值为True

Return type:

BlockVector

compress(condition, axis=None, out=None)[source]

返回每个子块的选定切片。

Parameters:

condition (ArrayBlockVector 用于选择要返回的条目。) – 决定选择(在条件中评估为 True)

Return type:

BlockVector

conj()[source]

对所有元素进行复共轭。

conjugate()[source]

对所有元素进行复共轭。

copy(order='C')[source]

返回BlockVector的副本

copy_structure()[source]

返回一个填充了零的BlockVector结构的副本

copyfrom(other)[source]

将其他向量的条目复制到此向量中

Parameters:

其他 (BlockVectornumpy.ndarray) – 要复制到此BlockVector的向量

Return type:

copyto(other)[source]

将此BlockVector的条目复制到其他

Parameters:

其他 (BlockVectornumpy.ndarray)

Return type:

cumprod(axis=None, dtype=None, out=None)[source]

返回沿给定轴元素的累积乘积。

cumsum(axis=None, dtype=None, out=None)[source]

返回沿给定轴的元素累积和。

dot(other, out=None)[source]

返回点积

Parameters:

其他 (ndarrayBlockVector)

Return type:

float

fill(value)[source]

用标量值填充BlockVector。

Parameters:

value (标量) – 向量中的所有元素将被赋予这个值

Return type:

flatten(order='C')[source]

将BlockVector转换为NumPy数组。这也会在BlockVector中的底层NumPy数组上调用flatten。

Parameters:

order (str: {C, F, A, K}, optional) – 请参阅NumPy数组文档。

Returns:

flat_array – 由所有块连接而成的NumPy数组

Return type:

numpy.ndarray

get_block(key)[source]

访问一个块。

Parameters:

key (int) – 这是区块索引

Returns:

block – 与索引键对应的块。

Return type:

np.ndarray 或 BlockVector

max(axis=None, out=None, keepdims=False)[source]

返回存储在此BlockVector中的最大值

mean(axis=None, dtype=None, out=None, keepdims=False)[source]

返回此BlockVector中所有条目的平均值

min(axis=None, out=None, keepdims=False)[source]

返回向量中存储的最小值

nonzero()[source]

返回非零元素的索引。

pprint()[source]

以漂亮的格式打印BlockVector

prod(axis=None, dtype=None, out=None, keepdims=False)[source]

返回此BlockVector中所有条目的乘积

ravel(order='C')[source]

将BlockVector转换为NumPy数组。请注意,在连接它们之前,还会对BlockVector中的所有NumPy数组调用ravel。

Parameters:

order (str) – 请参阅NumPy文档。

Returns:

结果

Return type:

numpy.ndarray

round(decimals=0, out=None)[source]

返回BlockVector,其中每个元素四舍五入到指定的小数位数

set_block(key, value)[source]

设置一个块。该值可以是NumPy数组或另一个BlockVector。

Parameters:
  • key (int) – 这是区块索引

  • value – 这是块。它可以是NumPy数组或另一个BlockVector。

set_blocks(blocks)[source]

以块为单位分配向量

Parameters:

blocks (list) – numpy.ndarrays 和/或 BlockVectors 的列表

Return type:

std(axis=None, dtype=None, out=None, ddof=0, keepdims=False)[source]

返回BlockVector元素的标准差。

sum(axis=None, dtype=None, out=None, keepdims=False)[source]

返回此BlockVector中所有条目的总和

toMPIBlockVector(rank_ownership, mpi_comm, assert_correct_owners=False)[source]

从此BlockVector创建一个并行的MPIBlockVector

Parameters:
  • rank_ownership (array_like) – 大小为 nblocks 的数组。每个条目定义了每个块的所有权。 有两种类型的所有权。由所有处理器拥有的块, 和由单个处理器拥有的块。如果一个块由所有 处理器拥有,则其所有权为 -1。否则,如果一个块由 单个处理器拥有,则其所有权等于该处理器的 排名。

  • mpi_comm (MPI通信器) – 一个MPI通信器。通常是MPI.COMM_WORLD

tofile(fid, sep='', format='%s')[source]

将BlockVector的平面版本写入文件,格式为文本或二进制(默认)。

tolist()[source]

返回展平为列表的BlockVector。

Return type:

list

var(axis=None, dtype=None, out=None, ddof=0, keepdims=False)[source]

返回BlockVector元素的方差。

property bshape

返回此BlockVector中的块数,以元组形式表示。

property has_none

指示此BlockVector是否有任何非零条目。

property nblocks

返回块的数量。

property ndim

返回此BlockVector的维度

property shape

返回此BlockVector中的元素总数

property size

返回此BlockVector中的元素总数