ФорменныйМассивСрез

@frozen
public struct ShapedArraySlice<Scalar> : _ShapedArrayProtocol
extension ShapedArraySlice: RandomAccessCollection, MutableCollection
extension ShapedArraySlice: CustomStringConvertible
extension ShapedArraySlice: CustomPlaygroundDisplayConvertible
extension ShapedArraySlice: CustomReflectable
extension ShapedArraySlice: ExpressibleByArrayLiteral where Scalar: TensorFlowScalar
extension ShapedArraySlice: Equatable where Scalar: Equatable
extension ShapedArraySlice: Hashable where Scalar: Hashable
extension ShapedArraySlice: Codable where Scalar: Codable

Непрерывный фрагмент экземпляра ShapedArray или ShapedArraySlice .

ShapedArraySlice обеспечивает быстрые и эффективные операции с смежными фрагментами экземпляров ShapedArray . Экземпляры ShapedArraySlice не имеют собственного хранилища. Вместо этого они предоставляют представление о хранилище своего базового ShapedArray . ShapedArraySlice может представлять два разных типа срезов: массивы элементов и подмассивы.

Массивы элементов — это подразмерные элементы ShapedArray : их ранг на единицу меньше, чем у их базы. Срезы массива элементов получаются путем индексации экземпляра ShapedArray с помощью единственного индекса Int32 .

Например:

    var matrix = ShapedArray(shape: [2, 2], scalars: [0, 1, 2, 3])
    // `matrix` represents [[0, 1], [2, 3]].

    let element = matrix[0]
    // `element` is a `ShapedArraySlice` with shape [2]. It is an element
    // array, specifically the first element in `matrix`: [0, 1].

    matrix[1] = ShapedArraySlice(shape: [2], scalars: [4, 8])
    // The second element in `matrix` has been mutated.
    // `matrix` now represents [[0, 1, 4, 8]].

Подмассивы — это непрерывный диапазон элементов в ShapedArray . Ранг подмассива такой же, как и у его основания, но его ведущим измерением является счетчик диапазона срезов. Срезы подмассива получаются путем индексации ShapedArray с помощью Range<Int32> , который представляет диапазон элементов (в ведущем измерении). Такие методы, как prefix(:) и suffix(:) , которые внутренне индексируют диапазон, также создают подмассив.

Например:

    let zeros = ShapedArray(repeating: 0, shape: [3, 2])
    var matrix = ShapedArray(shape: [3, 2], scalars: Array(0..<6))
    // `zeros` represents [[0, 0], [0, 0], [0, 0]].
    // `matrix` represents [[0, 1], [2, 3], [4, 5]].

    let subarray = matrix.prefix(2)
    // `subarray` is a `ShapedArraySlice` with shape [2, 2]. It is a slice
    // of the first 2 elements in `matrix` and represents [[0, 1], [2, 3]].

    matrix[0..<2] = zeros.prefix(2)
    // The first 2 elements in `matrix` have been mutated.
    // `matrix` now represents [[0, 0], [0, 0], [4, 5]].
  • Число измерений массива.

    Декларация

    public var rank: Int { get }
  • Форма массива.

    Декларация

    public var shape: [Int] { get }
  • Общее количество скаляров в массиве.

    Декларация

    public var scalarCount: Int { get }
  • Создает ShapedArraySlice с указанной формой и смежными скалярами в порядке следования строк.

    Предварительное условие

    Количество скаляров должно равняться произведению размеров фигуры.

    Декларация

    public init(shape: [Int], scalars: [Scalar])
  • Создает ShapedArraySlice с указанной формой и последовательностью скаляров в порядке строк.

    Предварительное условие

    Количество скаляров должно равняться произведению размеров фигуры.

    Декларация

    public init<S>(shape: [Int], scalars: S) where Scalar == S.Element, S : Sequence
  • Создает ShapedArraySlice на основе скалярного значения.

    Декларация

    public init(_ scalar: Scalar)
  • Создает ShapedArraySlice указанной формы и одного повторяющегося скалярного значения.

    Декларация

    @available(*, deprecated, renamed: "init(repeating:shape:﹚")
    public init(shape: [Int], repeating repeatedValue: Scalar)

    Параметры

    repeatedValue

    Скалярное значение для повторения.

    shape

    Форма ShapedArraySlice .

  • Создает ShapedArraySlice указанной формы и одного повторяющегося скалярного значения.

    Декларация

    public init(repeating repeatedValue: Scalar, shape: [Int])

    Параметры

    repeatedValue

    Скалярное значение для повторения.

    shape

    Форма ShapedArraySlice .

  • Диапазон скаляров из базового ShapedArray представленного ShapedArraySlice .

    Декларация

    var scalarRange: Range<Int> { get }
  • Вызывает замыкание с указателем на непрерывное хранилище ShapedArraySlice .

    Декларация

    public func withUnsafeBufferPointer<Result>(
      _ body: (UnsafeBufferPointer<Scalar>) throws -> Result
    ) rethrows -> Result

    Параметры

    body

    Замыкание с параметром UnsafeBufferPointer , указывающим на непрерывное хранилище для ShapedArraySlice . Если такого хранилища не существует, оно создается. Если тело имеет возвращаемое значение, это значение также используется в качестве возвращаемого значения для метода withUnsafeBufferPointer(_:) . Аргумент-указатель действителен только на время выполнения метода.

  • Вызывает данное замыкание с указателем на изменяемое непрерывное хранилище ShapedArraySlice .

    Декларация

    public mutating func withUnsafeMutableBufferPointer<Result>(
      _ body: (inout UnsafeMutableBufferPointer<Scalar>) throws -> Result
    ) rethrows -> Result

    Параметры

    body

    Замыкание с параметром UnsafeMutableBufferPointer , указывающим на непрерывное хранилище для ShapedArraySlice . Если такого хранилища не существует, оно создается. Если тело имеет возвращаемое значение, это значение также используется в качестве возвращаемого значения для метода withUnsafeMutableBufferPointer(_:) . Аргумент-указатель действителен только на время выполнения метода.

  • Декларация

    public typealias Index = Int
  • Декларация

    public typealias Element = ShapedArraySlice
  • Декларация

    public typealias SubSequence = ShapedArraySlice
  • Декларация

    public var indices: Range<Int> { get }
  • Декларация

    public var startIndex: Int { get }
  • Декларация

    public var endIndex: Int { get }
  • Получите доступ к массиву элементов, указанному индексом в ведущем измерении.

    Декларация

    public subscript(index: Int) -> Element { get set }

    Параметры

    index

    Индекс массива элементов.

  • Получите доступ к подмассиву, указанному непрерывным диапазоном индексов.

    Декларация

    public subscript(bounds: Range<Int>) -> SubSequence { get set }

    Параметры

    bounds

    Непрерывный диапазон индексов.

  • Текстовое представление этого ShapedArraySlice .

    Примечание

    используйте fullDescription для некрасивого представления, показывающего все скаляры.

    Декларация

    public var description: String { get }
  • Декларация

    public var playgroundDescription: Any { get }
  • Декларация

    public var customMirror: Mirror { get }
Доступно, если `Scalar`: `TensorFlowScalar`
Доступно, если `Scalar`: `Equatable`
  • Декларация

    public static func == (lhs: ShapedArraySlice, rhs: ShapedArraySlice) -> Bool
Доступно, если `Scalar`: `Hashable`
  • Декларация

    public func hash(into hasher: inout Hasher)
Доступно, если `Scalar`: `Codable`