ShapedArraySlice

@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要素配列と部分配列という 2 つの異なる種類のスライスを表すことができます。

要素配列はShapedArrayのサブディメンション要素です。そのランクはベースのランクより 1 つ小さいです。要素配列スライスは、 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内の要素の連続した範囲です。サブ配列のランクはそのベースのランクと同じですが、その先頭の次元はスライス範囲の数です。サブ配列スライスは、(先頭の次元の) 要素の範囲を表すRange<Int32>を使用してShapedArrayにインデックスを付けることによって取得されます。 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の形状。

  • ShapedArraySliceで表される基本ShapedArrayのスカラーの範囲。

    宣言

    var scalarRange: Range<Int> { get }
  • ShapedArraySliceの連続ストレージへのポインターを使用してクロージャーを呼び出します。

    宣言

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

    パラメーター

    body

    ShapedArraySliceの連続ストレージを指すUnsafeBufferPointerパラメーターを持つクロージャー。そのようなストレージが存在しない場合は、作成されます。 body に戻り値がある場合、その値はwithUnsafeBufferPointer(_:)メソッドの戻り値としても使用されます。ポインタ引数は、メソッドの実行中のみ有効です。

  • ShapedArraySliceの可変の連続ストレージへのポインターを使用して、指定されたクロージャを呼び出します。

    宣言

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

    パラメーター

    body

    ShapedArraySliceの連続ストレージを指すUnsafeMutableBufferPointerパラメーターを持つクロージャー。そのようなストレージが存在しない場合は、作成されます。 body に戻り値がある場合、その値は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` で利用可能
`Scalar`: `Codable` で利用可能