rover-df 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +50 -1
- data/lib/rover/data_frame.rb +11 -0
- data/lib/rover/vector.rb +41 -8
- data/lib/rover/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a1b47800b1d7e9b84e7a1976f2cfbc551e9dee6a9a0ec39b3759b6564e4e278
|
4
|
+
data.tar.gz: a41f8ed9bdeabc01a0fc83bdb98487a375bfa6f6d1d2fd4041db7cc38f803482
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b2e10547e204ff592757373bc93c7d8dfd004802a87e10ca886c47771c29aa717fe19ef11e20c9b830765c64c6ef65db5d0bfead0d1b064c680938a1cca8184
|
7
|
+
data.tar.gz: ce25fac82709a912e78c871f356e681ad8f85a599db1eeea58d5654ddf3928554d70a7434e92beb4352c81b69307dce77062baedd8669f2584bda54f1e40ee42
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 0.3.3 (2022-07-11)
|
2
|
+
|
3
|
+
- Added `ln`, `log`, `log10`, and `log2` methods to vectors
|
4
|
+
- Added `exp` and `exp2` methods to vectors
|
5
|
+
- Added `sin`, `cos`, `tan`, `asin`, `acos`, and `atan` methods to vectors
|
6
|
+
- Added `sinh`, `cosh`, `tanh`, `asinh`, `acosh`, and `atanh` methods to vectors
|
7
|
+
- Added `round`, `ceil`, and `floor` methods to vectors
|
8
|
+
- Added `empty?` method to vectors
|
9
|
+
- Added `rename` method to data frames
|
10
|
+
|
1
11
|
## 0.3.2 (2022-07-10)
|
2
12
|
|
3
13
|
- Added `sqrt` method to vectors
|
data/README.md
CHANGED
@@ -191,6 +191,53 @@ df[:a] * 5
|
|
191
191
|
df[:a] / 5
|
192
192
|
df[:a] % 5
|
193
193
|
df[:a] ** 2
|
194
|
+
df[:a].sqrt
|
195
|
+
df[:a].abs
|
196
|
+
```
|
197
|
+
|
198
|
+
Rounding
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
df[:a].round
|
202
|
+
df[:a].ceil
|
203
|
+
df[:a].floor
|
204
|
+
```
|
205
|
+
|
206
|
+
Logarithm
|
207
|
+
|
208
|
+
```ruby
|
209
|
+
df[:a].ln # or log
|
210
|
+
df[:a].log10
|
211
|
+
df[:a].log2
|
212
|
+
```
|
213
|
+
|
214
|
+
Exponentiation
|
215
|
+
|
216
|
+
```ruby
|
217
|
+
df[:a].exp
|
218
|
+
df[:a].exp2
|
219
|
+
```
|
220
|
+
|
221
|
+
Trigonometric functions
|
222
|
+
|
223
|
+
```ruby
|
224
|
+
df[:a].sin
|
225
|
+
df[:a].cos
|
226
|
+
df[:a].tan
|
227
|
+
df[:a].asin
|
228
|
+
df[:a].acos
|
229
|
+
df[:a].atan
|
230
|
+
```
|
231
|
+
|
232
|
+
Hyperbolic functions
|
233
|
+
|
234
|
+
```ruby
|
235
|
+
df[:a].sinh
|
236
|
+
df[:a].cosh
|
237
|
+
df[:a].tanh
|
238
|
+
df[:a].asinh
|
239
|
+
df[:a].acosh
|
240
|
+
df[:a].atanh
|
194
241
|
```
|
195
242
|
|
196
243
|
Summary statistics
|
@@ -323,9 +370,11 @@ df.delete(:a)
|
|
323
370
|
df.except!(:a, :b)
|
324
371
|
```
|
325
372
|
|
326
|
-
Rename
|
373
|
+
Rename columns
|
327
374
|
|
328
375
|
```ruby
|
376
|
+
df.rename(a: :new_a, b: :new_b)
|
377
|
+
# or
|
329
378
|
df[:new_a] = df.delete(:a)
|
330
379
|
```
|
331
380
|
|
data/lib/rover/data_frame.rb
CHANGED
@@ -136,6 +136,17 @@ module Rover
|
|
136
136
|
alias_method :names, :keys
|
137
137
|
alias_method :vector_names, :keys
|
138
138
|
|
139
|
+
def rename(mapping)
|
140
|
+
mapping.each_key do |k|
|
141
|
+
check_column(k)
|
142
|
+
end
|
143
|
+
# use transform_keys! to preserve order
|
144
|
+
@vectors.transform_keys! do |k|
|
145
|
+
mapping[k] || k
|
146
|
+
end
|
147
|
+
self
|
148
|
+
end
|
149
|
+
|
139
150
|
def delete(key)
|
140
151
|
@vectors.delete(key)
|
141
152
|
end
|
data/lib/rover/vector.rb
CHANGED
@@ -197,16 +197,43 @@ module Rover
|
|
197
197
|
Vector.new(@data.abs)
|
198
198
|
end
|
199
199
|
|
200
|
-
def
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
200
|
+
def round(ndigits = 0)
|
201
|
+
if ndigits == 0
|
202
|
+
Vector.new(@data.round)
|
203
|
+
else
|
204
|
+
map { |v| v.round(ndigits) }
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def ceil(ndigits = 0)
|
209
|
+
if ndigits == 0
|
210
|
+
Vector.new(@data.ceil)
|
211
|
+
else
|
212
|
+
map { |v| v.ceil(ndigits) }
|
213
|
+
end
|
208
214
|
end
|
209
215
|
|
216
|
+
def floor(ndigits = 0)
|
217
|
+
if ndigits == 0
|
218
|
+
Vector.new(@data.floor)
|
219
|
+
else
|
220
|
+
map { |v| v.floor(ndigits) }
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
[:sqrt, :sin, :cos, :tan, :asin, :acos, :atan, :sinh, :cosh, :tanh, :asinh, :acosh, :atanh, :log, :log2, :log10, :exp, :exp2].each do |m|
|
225
|
+
define_method(m) do
|
226
|
+
data =
|
227
|
+
if @data.is_a?(Numo::SFloat)
|
228
|
+
Numo::SFloat::Math.send(m, @data)
|
229
|
+
else
|
230
|
+
Numo::DFloat::Math.send(m, @data)
|
231
|
+
end
|
232
|
+
Vector.new(data)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
alias_method :ln, :log
|
236
|
+
|
210
237
|
def each(&block)
|
211
238
|
@data.each(&block)
|
212
239
|
end
|
@@ -261,10 +288,15 @@ module Rover
|
|
261
288
|
to_a.any?(&block)
|
262
289
|
end
|
263
290
|
|
291
|
+
def empty?
|
292
|
+
size == 0
|
293
|
+
end
|
294
|
+
|
264
295
|
def zip(other, &block)
|
265
296
|
to_a.zip(other.to_a, &block)
|
266
297
|
end
|
267
298
|
|
299
|
+
# TODO return element instead of vector if no argument in 0.4.0
|
268
300
|
def first(n = 1)
|
269
301
|
if n >= size
|
270
302
|
Vector.new(@data)
|
@@ -273,6 +305,7 @@ module Rover
|
|
273
305
|
end
|
274
306
|
end
|
275
307
|
|
308
|
+
# TODO return element instead of vector if no argument in 0.4.0
|
276
309
|
def last(n = 1)
|
277
310
|
if n >= size
|
278
311
|
Vector.new(@data)
|
data/lib/rover/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rover-df
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-narray
|