Creates a new {Arrow::Tensor}. @overload initialize(raw_tensor, data_type: nil, shape: nil, dimension_names: nil) @param raw_tensor [::Array ] The tensor represented as a raw `Array` (not `Arrow::Array`) and `Numeric`s. You can pass a nested `Array` for a multi-dimensional tensor. @param data_type [Arrow::DataType, String, Symbol, ::Array , ::Array , Hash, nil] The element
(*args,
data_type: nil,
data: nil,
shape: nil,
strides: nil,
dimension_names: nil)
| 103 | # names = ["a", "b", "c"] |
| 104 | # Arrow::Tensor.new(:int8, data, shape, strides, names) |
| 105 | def initialize(*args, |
| 106 | data_type: nil, |
| 107 | data: nil, |
| 108 | shape: nil, |
| 109 | strides: nil, |
| 110 | dimension_names: nil) |
| 111 | n_args = args.size |
| 112 | case n_args |
| 113 | when 1 |
| 114 | converter = RawTensorConverter.new(args[0], |
| 115 | data_type: data_type, |
| 116 | shape: shape, |
| 117 | strides: strides, |
| 118 | dimension_names: dimension_names) |
| 119 | data_type = converter.data_type |
| 120 | data = converter.data |
| 121 | shape = converter.shape |
| 122 | strides = converter.strides |
| 123 | dimension_names = converter.dimension_names |
| 124 | when 0, 2..5 |
| 125 | data_type = args[0] || data_type |
| 126 | data = args[1] || data |
| 127 | shape = args[2] || shape |
| 128 | strides = args[3] || strides |
| 129 | dimension_names = args[4] || dimension_names |
| 130 | if data_type.nil? |
| 131 | raise ArgumentError, "data_type: is missing: #{data.inspect}" |
| 132 | end |
| 133 | else |
| 134 | message = "wrong number of arguments (given #{n_args}, expected 0..5)" |
| 135 | raise ArgumentError, message |
| 136 | end |
| 137 | initialize_raw(DataType.resolve(data_type), |
| 138 | data, |
| 139 | shape, |
| 140 | strides, |
| 141 | dimension_names) |
| 142 | end |
| 143 | |
| 144 | def dimension_names |
| 145 | n_dimensions.times.collect do |i| |