JL Julia  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

DataFrames.jl и табличные данные

Практические задания по теме «DataFrames.jl и табличные данные» требуют сопоставить несколько решений, найти источник ошибки и оценить последствия выбранного подхода. Вопросы требуют читать код, находить границу применимости, выбирать проверяемую правку и отличать свойства Julia от поведения конкретного пакета. В тесте 25 вопросов: 15 заданий с кодом и 10 заданий с математической записью. Все формулировки рассчитаны на Julia 1.12.6; для сторонних библиотек используется явно названный API.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 70 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 25
Какой механизм Julia определяет поведение строки `a = df[!, :x]`?
x=df[:,c]\neq df[!,c]
JuliaJulia · Индексация
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
Вопрос 2 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `a = df[!, :x]`?
JuliaJulia · Индексация
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
Вопрос 3 из 25
Что должно остаться истинным после рефакторинга участка с `a = df[!, :x]`?
JuliaJulia · Индексация
using DataFrames
x = [1, 2, 3]
df = DataFrame(x=x, y=10:10:30)
a = df[!, :x]
b = df[:, :x]
a[1] = 99
b[2] = 88
@show df a b
Вопрос 4 из 25
При переносе кода с `a = df[!, :x]` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
x=df[:,c]\neq df[!,c]
Вопрос 5 из 25
Как сформулировать границу механизма `a = df[!, :x]` без чрезмерного обещания?
Вопрос 6 из 25
Что именно следует из фрагмента с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
z_i=g(x_i)
JuliaJulia · Преобразования
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
Вопрос 7 из 25
Какой тест точнее всего зафиксирует границу поведения `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
JuliaJulia · Преобразования
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
Вопрос 8 из 25
Что должно остаться истинным после рефакторинга участка с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
JuliaJulia · Преобразования
using DataFrames
df = DataFrame(id=1:3, x=[1.0, 2.0, missing])
out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)
@show out
Вопрос 9 из 25
Какой результат приёмочного теста подтвердит корректность участка с `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
z_i=g(x_i)
Вопрос 10 из 25
Что следует сообщить пользователю библиотеки о поведении `out = transform(df, :x => ByRow(v -> ismissing(v) ? missing : v^2) => :x2)`?
Вопрос 11 из 25
Как нужно интерпретировать `g = groupby(df, :group)`, не добавляя к коду лишних гарантий?
\bar{x}_g=|g|^{-1}\sum_{i\in g}x_i
JuliaJulia · Группировка
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
Вопрос 12 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `g = groupby(df, :group)`?
JuliaJulia · Группировка
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
Вопрос 13 из 25
Какое решение устраняет риск вокруг `g = groupby(df, :group)`, не меняя поведение на допустимых данных?
JuliaJulia · Группировка
using DataFrames, Statistics
df = DataFrame(group=["a", "a", "b"], value=[1.0, 3.0, 10.0])
g = groupby(df, :group)
out = combine(g, :value => mean => :mean_value, nrow => :n)
@show out
Вопрос 14 из 25
Две реализации участка с `g = groupby(df, :group)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\bar{x}_g=|g|^{-1}\sum_{i\in g}x_i
Вопрос 15 из 25
Какое ограничение стоит прямо указать в документации к участку с `g = groupby(df, :group)`?
Вопрос 16 из 25
Какое утверждение точнее всего объясняет участок с `out = innerjoin(left, right, on=:id, makeunique=true)`?
|L\Join R|\ge\max(|L|,|R|)\;\text{в общем случае}
JuliaJulia · Соединения
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
Вопрос 17 из 25
Какой эксперимент отличит настоящий механизм `out = innerjoin(left, right, on=:id, makeunique=true)` от случайного результата одного запуска?
JuliaJulia · Соединения
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
Вопрос 18 из 25
Какую гарантию должна сохранить правка участка с `out = innerjoin(left, right, on=:id, makeunique=true)`?
JuliaJulia · Соединения
using DataFrames
left = DataFrame(id=[1, 1, 2], x=["a", "b", "c"])
right = DataFrame(id=[1, 1, 3], y=[10, 20, 30])
out = innerjoin(left, right, on=:id, makeunique=true)
@show out nrow(out)
Вопрос 19 из 25
После обновления Julia или пакета поведение участка с `out = innerjoin(left, right, on=:id, makeunique=true)` изменилось. Какой критерий приёмки остаётся корректным?
|L\Join R|\ge\max(|L|,|R|)\;\text{в общем случае}
Вопрос 20 из 25
Какое утверждение о `out = innerjoin(left, right, on=:id, makeunique=true)` является переносимым правилом, а не особенностью одного запуска?
Вопрос 21 из 25
Как нужно интерпретировать `any(ismissing, df.value) && throw(ArgumentError("missing value"))`, не добавляя к коду лишних гарантий?
\operatorname{schema}(D)=S
JuliaJulia · Ошибки интеграции
using DataFrames
function validate_table(df)
    required = [:id, :value]
    all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
    allunique(df.id) || throw(ArgumentError("duplicate id"))
    any(ismissing, df.value) && throw(ArgumentError("missing value"))
    return df
end
Вопрос 22 из 25
Что нужно подтвердить отдельным примером для `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
JuliaJulia · Ошибки интеграции
using DataFrames
function validate_table(df)
    required = [:id, :value]
    all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
    allunique(df.id) || throw(ArgumentError("duplicate id"))
    any(ismissing, df.value) && throw(ArgumentError("missing value"))
    return df
end
Вопрос 23 из 25
Какую гарантию должна сохранить правка участка с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
JuliaJulia · Ошибки интеграции
using DataFrames
function validate_table(df)
    required = [:id, :value]
    all(in(names(df)), string.(required)) || throw(ArgumentError("schema"))
    allunique(df.id) || throw(ArgumentError("duplicate id"))
    any(ismissing, df.value) && throw(ArgumentError("missing value"))
    return df
end
Вопрос 24 из 25
Какой результат приёмочного теста подтвердит корректность участка с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?
\operatorname{schema}(D)=S
Вопрос 25 из 25
Какое ограничение стоит прямо указать в документации к участку с `any(ismissing, df.value) && throw(ArgumentError("missing value"))`?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу