WordPress loop not respecting my arguments

I created a WordPress loop for with specific arguments but it is just ignoring them. For example I like to list only posts but there are also pages listed.

<h1 id="" class="offset"><?php _e('Aktuell','Main'); ?></h1>
<?php 
// Restore original Post Data
wp_reset_postdata();

// WP_Query arguments
$args = array (
    'post_type'             => 'post',
    'cat'                   => '50,47',
    'numberposts'            => '3',
    'posts_per_page'         => '3',
    'ignore_sticky_posts'    => true,
    'order'                  => 'ASC',
    'orderby'              => 'menu_order',
);

// The Query
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post(); 
 ?>

<article <?php post_class(); ?>>

</article>

    <?php }
} else {
    // no posts found
}


?>  
</div>