Comments (5)
IMO, it should just do allocation.
For ordinary Julia arrays, similar(a)
returns something whose contents are completely random/undefined. People can use fill
and whatever to initialize the content. The same should be similar for data arrays. People can initialize everything to NA
or not NA
using additional statements.
from dataarrays.jl.
Let's see what @simonster thinks. If he agrees, we should make the change. After that, we need to review the codebase to make sure that we set NA
properly in anything generated by similar
.
from dataarrays.jl.
All other things being equal, I think it's more user-friendly to do NA
setting. I don't think there's much point in consistency with Base for consistency's sake, since the behavior is not even entirely consistent there (bits types get random values, but other types get #undef
s, which presumably requires zeroing the array of pointers). NA
setting seems unlikely to cause much confusion; code that expects an uninitialized array should work just fine with a DataArray full of NAs.
If there's a performance impact of NA
setting, that would be a good reason not to do it, but my intuition is that it would be minimal. For Ints and Float64s, there are 64x as many bits in the data
array as in the na
array. For code that does nothing but fill the data array, the cost to fill the na
array should be <2% of the total time, and for anything more complicated it is likely immeasurably small.
from dataarrays.jl.
@simonster's argument is fair enough to me.
from dataarrays.jl.
Yeah, I think this is a reasonable hypothesis. Let's use Simon's auto-NA semantics until there's a legitimate performance problem. I'll add a few tests to make sure we're doing this correctly.
from dataarrays.jl.
Related Issues (20)
- #undef/uninitialised values from unique on PooledDataArray
- Get rid of @ngenerate
- Missing DataArray{T}(dims) constructors HOT 1
- MethodError in pooleddataarray.jl in Julia 0.6 HOT 7
- Inference failure/indexing issues HOT 14
- View on DataArray makes copy HOT 1
- broadcast() inference issue with mean() and > HOT 5
- In v 0.7 precompile fails with typeassert HOT 1
- `safe_mapslices` at test/reducedim.jl is broken on 0.7 HOT 2
- Can't load DataArrays HOT 9
- Weighted mean broken for matrices HOT 1
- Avoid copying input Array{Union{T, Null}} in DataArray{T} constructor
- getindex broken when using multidimensional index of DataArray{Bool}
- Division DataArray{Int} / Int results in Array{Any} HOT 2
- doesn't load on julia v0.7 because of `printf` HOT 1
- PooledDataArray depreciated? HOT 1
- Julia v0.7 compatibility HOT 9
- "UndefVarError: centralizedabs2fun not defined" while precompiling HOT 3
- Julia-1.0.0 Compile Error HOT 3
- Package compatibility caps
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dataarrays.jl.