UPDATE: don't do anything like what I wrote below anymore. The summer17 release introduced a parameter for handling this (no custom CSS required!) variant="label-hidden"

<lightning:input label="how many" placeholder="how many?..." value="{!v.something}" type="number" variant="label-hidden"/>  

This hides the label from view, but still makes it available for assistive tools.


original post below (don't do this unless you have to use old versions for some reason).

Salesforce is deeply committed to accessibility, and that shows up in the code.

For example, lightning:input has a required label field. Not an expert on this stuff, but some screen readers will read the form field labels, but don't support the placeholder attribute.

But sometimes that label gets in the way--like if you're trying to use lightning:input in a table...the label is at the top of the column, not on each input.

Here's some useful bits. In the markup using lightning:input

<lightning:input label="how many" placeholder="how many?..." value="{!v.something}" type="number" class="no-label"/>  

Then, in your component's style.css

.THIS .lightningInput.no-label label {
    display : none;
}

So this'll hide your labels.

Keep your apps accessible, but if you want to use lightning:input in a non-form setting, now you can!