diff --git a/dask/array/core.py b/dask/array/core.py
index 9bf4edb3e..83c5160b4 100644
--- a/dask/array/core.py
+++ b/dask/array/core.py
@@ -514,7 +514,8 @@ def map_blocks(func, *args, **kwargs):
     drop_axis : number or iterable, optional
         Dimensions lost by the function.
     new_axis : number or iterable, optional
-        New dimensions created by the function.
+        New dimensions created by the function. Note that these are applied
+        after ``drop_axis`` (if present).
     name : string, optional
         The key name to use for the array. If not provided, will be determined
         by a hash of the arguments.
@@ -611,9 +612,6 @@ def map_blocks(func, *args, **kwargs):
     if isinstance(new_axis, Number):
         new_axis = [new_axis]
 
-    if drop_axis and new_axis:
-        raise ValueError("Can't specify drop_axis and new_axis together")
-
     arrs = [a for a in args if isinstance(a, Array)]
     other = [(i, a) for i, a in enumerate(args) if not isinstance(a, Array)]
 
@@ -666,15 +664,22 @@ def map_blocks(func, *args, **kwargs):
                           if i - 1 not in drop_axis), v)
                    for k, v in dsk.items())
         numblocks = [n for i, n in enumerate(numblocks) if i not in drop_axis]
-    elif new_axis:
+    if new_axis:
+        new_axis = sorted(new_axis)
+        for i in new_axis:
+            if not 0 <= i <= len(numblocks):
+                ndim = len(numblocks)
+                raise ValueError("Can't add axis %d when current "
+                                 "axis are %r. Missing axis: "
+                                 "%r" % (i, list(range(ndim)),
+                                         list(range(ndim, i))))
+            numblocks.insert(i, 1)
         dsk, old_dsk = dict(), dsk
         for key in old_dsk:
             new_key = list(key)
             for i in new_axis:
                 new_key.insert(i + 1, 0)
             dsk[tuple(new_key)] = old_dsk[key]
-        for i in sorted(new_axis):
-            numblocks.insert(i, 1)
 
     if chunks:
         if len(chunks) != len(numblocks):
@@ -702,7 +707,7 @@ def map_blocks(func, *args, **kwargs):
                                  "`chunks` kwarg.")
         if drop_axis:
             chunks2 = [c for (i, c) in enumerate(chunks2) if i not in drop_axis]
-        elif new_axis:
+        if new_axis:
             for i in sorted(new_axis):
                 chunks2.insert(i, (1,))
 
@@ -2255,6 +2260,9 @@ def stack(seq, axis=0):
     uc_args = list(concat((x, ind) for x in seq))
     _, seq = unify_chunks(*uc_args)
 
+    dt = reduce(np.promote_types, [a.dtype for a in seq])
+    seq = [x.astype(dt) for x in seq]
+
     assert len(set(a.chunks for a in seq)) == 1  # same chunks
     chunks = (seq[0].chunks[:axis] + ((1,) * n,) + seq[0].chunks[axis:])
 
@@ -2271,8 +2279,6 @@ def stack(seq, axis=0):
     dsk = dict(zip(keys, values))
     dsk2 = sharedict.merge((name, dsk), *[a.dask for a in seq])
 
-    dt = reduce(np.promote_types, [a.dtype for a in seq])
-
     return Array(dsk2, name, chunks, dtype=dt)
 
 

da.stack dtype
Greetings dask dudes,

I'm using `dask` version `0.14.1`

I stumbled across the following behaviour with respect to the `dtype` of a **computed** `stack`, and I was curious as to whether it is as expected:

First, create some data ...

```python
import dask.array as da                           
import numpy as np                 

# integer
i = np.array(np.arange(3), dtype='i4')
# float
f = np.array(np.arange(3), dtype='f4')

di = da.from_array(i, chunks=i.shape)
df = da.from_array(f, chunks=f.shape)
```

Now, `stack` the arrays in alternate orders ...
```python
didf = da.stack([di, df], axis=0)
dfdi = da.stack([df, di], axis=0)
```
And show the results, paying attention to the lazy `dtype` and the computed `dtype` ...
```python
print(didf)
print(dfdi)
print(didf.compute().dtype)
print(dfdi.compute().dtype)
```
Yields ...
```python
dask.array<stack, shape=(2, 3), dtype=float64, chunksize=(1, 3)>
dask.array<stack, shape=(2, 3), dtype=float64, chunksize=(1, 3)>
int32
float32
```
Comparing this with `concatenate`, we see a different result, but a result I would expect ...
```python
didf = da.concatenate([di, df], axis=0)
dfdi = da.concatenate([df, di], axis=0)
print(didf)
print(dfdi)
print(didf.compute().dtype)
print(dfdi.compute().dtype)
```
Yields ...
```python
dask.array<concatenate, shape=(6,), dtype=float64, chunksize=(3,)>
dask.array<concatenate, shape=(6,), dtype=float64, chunksize=(3,)>
float64
float64
```
Is this non-symmetric `dtype` behaviour of `stack` as you would expect?

Many thanks!

diff --git a/dask/array/tests/test_array_core.py b/dask/array/tests/test_array_core.py
index b31efda9f..8feff88cb 100644
--- a/dask/array/tests/test_array_core.py
+++ b/dask/array/tests/test_array_core.py
@@ -277,6 +277,15 @@ def test_stack_scalars():
     assert s.compute().tolist() == [np.arange(4).mean(), np.arange(4).sum()]
 
 
+def test_stack_promote_type():
+    i = np.arange(10, dtype='i4')
+    f = np.arange(10, dtype='f4')
+    di = da.from_array(i, chunks=5)
+    df = da.from_array(f, chunks=5)
+    res = da.stack([di, df])
+    assert_eq(res, np.stack([i, f]))
+
+
 @pytest.mark.skipif(LooseVersion(np.__version__) < '1.10.0',
                     reason="NumPy doesn't yet support stack")
 def test_stack_rechunk():
@@ -2106,9 +2115,9 @@ def test_map_blocks_with_changed_dimension():
     with pytest.raises(ValueError):
         d.map_blocks(lambda b: b.sum(axis=1), drop_axis=1, dtype=d.dtype)
 
-    # Can't use both drop_axis and new_axis
+    # Adding axis with a gap
     with pytest.raises(ValueError):
-        d.map_blocks(lambda b: b, drop_axis=1, new_axis=1)
+        d.map_blocks(lambda b: b, new_axis=(3, 4))
 
     d = da.from_array(x, chunks=(4, 8))
     e = d.map_blocks(lambda b: b.sum(axis=1), drop_axis=1, dtype=d.dtype)
@@ -2127,6 +2136,19 @@ def test_map_blocks_with_changed_dimension():
     assert e.chunks == ((1,), (4, 4), (4, 4), (1,))
     assert_eq(e, x[None, :, :, None])
 
+    # Both new_axis and drop_axis
+    d = da.from_array(x, chunks=(8, 4))
+    e = d.map_blocks(lambda b: b.sum(axis=0)[:, None, None],
+                     drop_axis=0, new_axis=(1, 2), dtype=d.dtype)
+    assert e.chunks == ((4, 4), (1,), (1,))
+    assert_eq(e, x.sum(axis=0)[:, None, None])
+
+    d = da.from_array(x, chunks=(4, 8))
+    e = d.map_blocks(lambda b: b.sum(axis=1)[:, None, None],
+                     drop_axis=1, new_axis=(1, 2), dtype=d.dtype)
+    assert e.chunks == ((4, 4), (1,), (1,))
+    assert_eq(e, x.sum(axis=1)[:, None, None])
+
 
 def test_broadcast_chunks():
     assert broadcast_chunks(((5, 5),), ((5, 5),)) == ((5, 5),)

pip install -e .[complete]
parse_log_pytest
requirements.txt
pytest flake8 pandas_datareader
apt-get update apt-get install -y gcc
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
aiobotocore==2.1.2
aiohttp==3.8.6
aioitertools==0.11.0
aiosignal==1.2.0
async-timeout==4.0.2
asynctest==0.13.0
attrs==22.2.0
botocore==1.23.24
certifi==2021.5.30
charset-normalizer==2.0.12
click==8.0.4
cloudpickle==2.2.1
-e git+https://github.com/dask/dask.git@c136b9dde885ba35dde85ba84afe2ad03c20e32d#egg=dask
distributed==1.19.3
flake8==5.0.4
frozenlist==1.2.0
fsspec==2022.1.0
HeapDict==1.0.1
idna==3.10
idna-ssl==1.1.0
importlib-metadata==4.2.0
iniconfig==1.1.1
jmespath==0.10.0
locket==1.0.0
lxml==5.3.1
mccabe==0.7.0
msgpack-python==0.5.6
multidict==5.2.0
numpy==1.19.5
packaging==21.3
pandas==1.1.5
pandas-datareader==0.10.0
partd==1.2.0
pluggy==1.0.0
psutil==7.0.0
py==1.11.0
pycodestyle==2.9.1
pyflakes==2.5.0
pyparsing==3.1.4
pytest==7.0.1
python-dateutil==2.9.0.post0
pytz==2025.2
requests==2.27.1
s3fs==2022.1.0
six==1.17.0
sortedcontainers==2.4.0
tblib==1.7.0
tomli==1.2.3
toolz==0.12.0
tornado==6.1
typing_extensions==4.1.1
urllib3==1.26.20
wrapt==1.16.0
yarl==1.7.2
zict==2.1.0
zipp==3.6.0

name: dask
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - aiobotocore==2.1.2
      - aiohttp==3.8.6
      - aioitertools==0.11.0
      - aiosignal==1.2.0
      - async-timeout==4.0.2
      - asynctest==0.13.0
      - attrs==22.2.0
      - botocore==1.23.24
      - charset-normalizer==2.0.12
      - click==8.0.4
      - cloudpickle==2.2.1
      - distributed==1.19.3
      - flake8==5.0.4
      - frozenlist==1.2.0
      - fsspec==2022.1.0
      - heapdict==1.0.1
      - idna==3.10
      - idna-ssl==1.1.0
      - importlib-metadata==4.2.0
      - iniconfig==1.1.1
      - jmespath==0.10.0
      - locket==1.0.0
      - lxml==5.3.1
      - mccabe==0.7.0
      - msgpack-python==0.5.6
      - multidict==5.2.0
      - numpy==1.19.5
      - packaging==21.3
      - pandas==1.1.5
      - pandas-datareader==0.10.0
      - partd==1.2.0
      - pluggy==1.0.0
      - psutil==7.0.0
      - py==1.11.0
      - pycodestyle==2.9.1
      - pyflakes==2.5.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - requests==2.27.1
      - s3fs==2022.1.0
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tblib==1.7.0
      - tomli==1.2.3
      - toolz==0.12.0
      - tornado==6.1
      - typing-extensions==4.1.1
      - urllib3==1.26.20
      - wrapt==1.16.0
      - yarl==1.7.2
      - zict==2.1.0
      - zipp==3.6.0
prefix: /opt/conda/envs/dask

dask/array/tests/test_array_core.py::test_stack_promote_type dask/array/tests/test_array_core.py::test_map_blocks_with_changed_dimension
dask/array/tests/test_array_core.py::test_field_access dask/array/tests/test_array_core.py::test_field_access_with_shape dask/array/tests/test_array_core.py::test_setitem_mixed_d
dask/array/tests/test_array_core.py::test_getem dask/array/tests/test_array_core.py::test_top dask/array/tests/test_array_core.py::test_top_supports_broadcasting_rules dask/array/tests/test_array_core.py::test_concatenate3_on_scalars dask/array/tests/test_array_core.py::test_chunked_dot_product dask/array/tests/test_array_core.py::test_chunked_transpose_plus_one dask/array/tests/test_array_core.py::test_transpose dask/array/tests/test_array_core.py::test_broadcast_dimensions_works_with_singleton_dimensions dask/array/tests/test_array_core.py::test_broadcast_dimensions dask/array/tests/test_array_core.py::test_Array dask/array/tests/test_array_core.py::test_uneven_chunks dask/array/tests/test_array_core.py::test_numblocks_suppoorts_singleton_block_dims dask/array/tests/test_array_core.py::test_keys dask/array/tests/test_array_core.py::test_Array_computation dask/array/tests/test_array_core.py::test_stack dask/array/tests/test_array_core.py::test_short_stack dask/array/tests/test_array_core.py::test_stack_scalars dask/array/tests/test_array_core.py::test_stack_rechunk dask/array/tests/test_array_core.py::test_concatenate dask/array/tests/test_array_core.py::test_concatenate_rechunk dask/array/tests/test_array_core.py::test_concatenate_fixlen_strings dask/array/tests/test_array_core.py::test_vstack dask/array/tests/test_array_core.py::test_hstack dask/array/tests/test_array_core.py::test_dstack dask/array/tests/test_array_core.py::test_take dask/array/tests/test_array_core.py::test_compress dask/array/tests/test_array_core.py::test_binops dask/array/tests/test_array_core.py::test_isnull dask/array/tests/test_array_core.py::test_isclose dask/array/tests/test_array_core.py::test_broadcast_shapes dask/array/tests/test_array_core.py::test_elemwise_on_scalars dask/array/tests/test_array_core.py::test_partial_by_order dask/array/tests/test_array_core.py::test_elemwise_with_ndarrays dask/array/tests/test_array_core.py::test_elemwise_differently_chunked dask/array/tests/test_array_core.py::test_operators dask/array/tests/test_array_core.py::test_operator_dtype_promotion dask/array/tests/test_array_core.py::test_tensordot dask/array/tests/test_array_core.py::test_tensordot_2[0] dask/array/tests/test_array_core.py::test_tensordot_2[1] dask/array/tests/test_array_core.py::test_tensordot_2[axes2] dask/array/tests/test_array_core.py::test_tensordot_2[axes3] dask/array/tests/test_array_core.py::test_tensordot_2[axes4] dask/array/tests/test_array_core.py::test_tensordot_2[axes5] dask/array/tests/test_array_core.py::test_tensordot_2[axes6] dask/array/tests/test_array_core.py::test_dot_method dask/array/tests/test_array_core.py::test_T dask/array/tests/test_array_core.py::test_norm dask/array/tests/test_array_core.py::test_choose dask/array/tests/test_array_core.py::test_where dask/array/tests/test_array_core.py::test_where_has_informative_error dask/array/tests/test_array_core.py::test_coarsen dask/array/tests/test_array_core.py::test_coarsen_with_excess dask/array/tests/test_array_core.py::test_insert dask/array/tests/test_array_core.py::test_multi_insert dask/array/tests/test_array_core.py::test_broadcast_to dask/array/tests/test_array_core.py::test_ravel dask/array/tests/test_array_core.py::test_roll[None-3-chunks0] dask/array/tests/test_array_core.py::test_roll[None-3-chunks1] dask/array/tests/test_array_core.py::test_roll[None-7-chunks0] dask/array/tests/test_array_core.py::test_roll[None-7-chunks1] dask/array/tests/test_array_core.py::test_roll[None-9-chunks0] dask/array/tests/test_array_core.py::test_roll[None-9-chunks1] dask/array/tests/test_array_core.py::test_roll[None-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[None-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[None-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[None-shift4-chunks1] dask/array/tests/test_array_core.py::test_roll[0-3-chunks0] dask/array/tests/test_array_core.py::test_roll[0-3-chunks1] dask/array/tests/test_array_core.py::test_roll[0-7-chunks0] dask/array/tests/test_array_core.py::test_roll[0-7-chunks1] dask/array/tests/test_array_core.py::test_roll[0-9-chunks0] dask/array/tests/test_array_core.py::test_roll[0-9-chunks1] dask/array/tests/test_array_core.py::test_roll[0-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[0-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[0-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[0-shift4-chunks1] dask/array/tests/test_array_core.py::test_roll[1-3-chunks0] dask/array/tests/test_array_core.py::test_roll[1-3-chunks1] dask/array/tests/test_array_core.py::test_roll[1-7-chunks0] dask/array/tests/test_array_core.py::test_roll[1-7-chunks1] dask/array/tests/test_array_core.py::test_roll[1-9-chunks0] dask/array/tests/test_array_core.py::test_roll[1-9-chunks1] dask/array/tests/test_array_core.py::test_roll[1-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[1-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[1-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[1-shift4-chunks1] dask/array/tests/test_array_core.py::test_roll[-1-3-chunks0] dask/array/tests/test_array_core.py::test_roll[-1-3-chunks1] dask/array/tests/test_array_core.py::test_roll[-1-7-chunks0] dask/array/tests/test_array_core.py::test_roll[-1-7-chunks1] dask/array/tests/test_array_core.py::test_roll[-1-9-chunks0] dask/array/tests/test_array_core.py::test_roll[-1-9-chunks1] dask/array/tests/test_array_core.py::test_roll[-1-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[-1-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[-1-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[-1-shift4-chunks1] dask/array/tests/test_array_core.py::test_roll[axis4-3-chunks0] dask/array/tests/test_array_core.py::test_roll[axis4-3-chunks1] dask/array/tests/test_array_core.py::test_roll[axis4-7-chunks0] dask/array/tests/test_array_core.py::test_roll[axis4-7-chunks1] dask/array/tests/test_array_core.py::test_roll[axis4-9-chunks0] dask/array/tests/test_array_core.py::test_roll[axis4-9-chunks1] dask/array/tests/test_array_core.py::test_roll[axis4-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[axis4-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[axis4-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[axis4-shift4-chunks1] dask/array/tests/test_array_core.py::test_roll[axis5-3-chunks0] dask/array/tests/test_array_core.py::test_roll[axis5-3-chunks1] dask/array/tests/test_array_core.py::test_roll[axis5-7-chunks0] dask/array/tests/test_array_core.py::test_roll[axis5-7-chunks1] dask/array/tests/test_array_core.py::test_roll[axis5-9-chunks0] dask/array/tests/test_array_core.py::test_roll[axis5-9-chunks1] dask/array/tests/test_array_core.py::test_roll[axis5-shift3-chunks0] dask/array/tests/test_array_core.py::test_roll[axis5-shift3-chunks1] dask/array/tests/test_array_core.py::test_roll[axis5-shift4-chunks0] dask/array/tests/test_array_core.py::test_roll[axis5-shift4-chunks1] dask/array/tests/test_array_core.py::test_reshape[original_shape0-new_shape0-chunks0] dask/array/tests/test_array_core.py::test_reshape[original_shape1-new_shape1-5] dask/array/tests/test_array_core.py::test_reshape[original_shape2-new_shape2-5] dask/array/tests/test_array_core.py::test_reshape[original_shape3-new_shape3-12] dask/array/tests/test_array_core.py::test_reshape[original_shape4-new_shape4-12] dask/array/tests/test_array_core.py::test_reshape[original_shape5-new_shape5-chunks5] dask/array/tests/test_array_core.py::test_reshape[original_shape6-new_shape6-4] dask/array/tests/test_array_core.py::test_reshape[original_shape7-new_shape7-4] dask/array/tests/test_array_core.py::test_reshape[original_shape8-new_shape8-4] dask/array/tests/test_array_core.py::test_reshape[original_shape9-new_shape9-2] dask/array/tests/test_array_core.py::test_reshape[original_shape10-new_shape10-2] dask/array/tests/test_array_core.py::test_reshape[original_shape11-new_shape11-2] dask/array/tests/test_array_core.py::test_reshape[original_shape12-new_shape12-2] dask/array/tests/test_array_core.py::test_reshape[original_shape13-new_shape13-2] dask/array/tests/test_array_core.py::test_reshape[original_shape14-new_shape14-2] dask/array/tests/test_array_core.py::test_reshape[original_shape15-new_shape15-2] dask/array/tests/test_array_core.py::test_reshape[original_shape16-new_shape16-chunks16] dask/array/tests/test_array_core.py::test_reshape[original_shape17-new_shape17-3] dask/array/tests/test_array_core.py::test_reshape[original_shape18-new_shape18-4] dask/array/tests/test_array_core.py::test_reshape[original_shape19-new_shape19-chunks19] dask/array/tests/test_array_core.py::test_reshape[original_shape20-new_shape20-1] dask/array/tests/test_array_core.py::test_reshape[original_shape21-new_shape21-1] dask/array/tests/test_array_core.py::test_reshape[original_shape22-new_shape22-24] dask/array/tests/test_array_core.py::test_reshape[original_shape23-new_shape23-6] dask/array/tests/test_array_core.py::test_reshape[original_shape24-new_shape24-6] dask/array/tests/test_array_core.py::test_reshape[original_shape25-new_shape25-6] dask/array/tests/test_array_core.py::test_reshape[original_shape26-new_shape26-chunks26] dask/array/tests/test_array_core.py::test_reshape[original_shape27-new_shape27-chunks27] dask/array/tests/test_array_core.py::test_reshape[original_shape28-new_shape28-chunks28] dask/array/tests/test_array_core.py::test_reshape[original_shape29-new_shape29-chunks29] dask/array/tests/test_array_core.py::test_reshape[original_shape30-new_shape30-chunks30] dask/array/tests/test_array_core.py::test_reshape[original_shape31-new_shape31-chunks31] dask/array/tests/test_array_core.py::test_reshape[original_shape32-new_shape32-chunks32] dask/array/tests/test_array_core.py::test_reshape[original_shape33-new_shape33-chunks33] dask/array/tests/test_array_core.py::test_reshape[original_shape34-new_shape34-chunks34] dask/array/tests/test_array_core.py::test_reshape_exceptions dask/array/tests/test_array_core.py::test_reshape_splat dask/array/tests/test_array_core.py::test_reshape_fails_for_dask_only dask/array/tests/test_array_core.py::test_reshape_unknown_dimensions dask/array/tests/test_array_core.py::test_full dask/array/tests/test_array_core.py::test_map_blocks dask/array/tests/test_array_core.py::test_map_blocks2 dask/array/tests/test_array_core.py::test_map_blocks_with_constants dask/array/tests/test_array_core.py::test_map_blocks_with_kwargs dask/array/tests/test_array_core.py::test_map_blocks_with_chunks dask/array/tests/test_array_core.py::test_map_blocks_dtype_inference dask/array/tests/test_array_core.py::test_fromfunction dask/array/tests/test_array_core.py::test_from_function_requires_block_args dask/array/tests/test_array_core.py::test_repr dask/array/tests/test_array_core.py::test_slicing_with_ellipsis dask/array/tests/test_array_core.py::test_slicing_with_ndarray dask/array/tests/test_array_core.py::test_dtype dask/array/tests/test_array_core.py::test_blockdims_from_blockshape dask/array/tests/test_array_core.py::test_coerce dask/array/tests/test_array_core.py::test_store_delayed_target dask/array/tests/test_array_core.py::test_store dask/array/tests/test_array_core.py::test_store_regions dask/array/tests/test_array_core.py::test_store_compute_false dask/array/tests/test_array_core.py::test_store_locks dask/array/tests/test_array_core.py::test_np_array_with_zero_dimensions dask/array/tests/test_array_core.py::test_unique dask/array/tests/test_array_core.py::test_dtype_complex dask/array/tests/test_array_core.py::test_astype dask/array/tests/test_array_core.py::test_arithmetic dask/array/tests/test_array_core.py::test_elemwise_consistent_names dask/array/tests/test_array_core.py::test_optimize dask/array/tests/test_array_core.py::test_slicing_with_non_ndarrays dask/array/tests/test_array_core.py::test_getarray dask/array/tests/test_array_core.py::test_squeeze dask/array/tests/test_array_core.py::test_size dask/array/tests/test_array_core.py::test_nbytes dask/array/tests/test_array_core.py::test_itemsize dask/array/tests/test_array_core.py::test_Array_normalizes_dtype dask/array/tests/test_array_core.py::test_from_array_with_lock dask/array/tests/test_array_core.py::test_from_array_slicing_results_in_ndarray dask/array/tests/test_array_core.py::test_asarray dask/array/tests/test_array_core.py::test_from_func dask/array/tests/test_array_core.py::test_topk dask/array/tests/test_array_core.py::test_topk_k_bigger_than_chunk dask/array/tests/test_array_core.py::test_bincount dask/array/tests/test_array_core.py::test_bincount_with_weights dask/array/tests/test_array_core.py::test_bincount_raises_informative_error_on_missing_minlength_kwarg dask/array/tests/test_array_core.py::test_digitize dask/array/tests/test_array_core.py::test_histogram dask/array/tests/test_array_core.py::test_histogram_alternative_bins_range dask/array/tests/test_array_core.py::test_histogram_return_type dask/array/tests/test_array_core.py::test_histogram_extra_args_and_shapes dask/array/tests/test_array_core.py::test_concatenate3_2 dask/array/tests/test_array_core.py::test_map_blocks3 dask/array/tests/test_array_core.py::test_from_array_with_missing_chunks dask/array/tests/test_array_core.py::test_cache dask/array/tests/test_array_core.py::test_take_dask_from_numpy dask/array/tests/test_array_core.py::test_normalize_chunks dask/array/tests/test_array_core.py::test_raise_on_no_chunks dask/array/tests/test_array_core.py::test_chunks_is_immutable dask/array/tests/test_array_core.py::test_raise_on_bad_kwargs dask/array/tests/test_array_core.py::test_long_slice dask/array/tests/test_array_core.py::test_ellipsis_slicing dask/array/tests/test_array_core.py::test_point_slicing dask/array/tests/test_array_core.py::test_point_slicing_with_full_slice dask/array/tests/test_array_core.py::test_slice_with_floats dask/array/tests/test_array_core.py::test_vindex_errors dask/array/tests/test_array_core.py::test_vindex_merge dask/array/tests/test_array_core.py::test_empty_array dask/array/tests/test_array_core.py::test_array dask/array/tests/test_array_core.py::test_cov dask/array/tests/test_array_core.py::test_corrcoef dask/array/tests/test_array_core.py::test_memmap dask/array/tests/test_array_core.py::test_to_npy_stack dask/array/tests/test_array_core.py::test_view dask/array/tests/test_array_core.py::test_view_fortran dask/array/tests/test_array_core.py::test_broadcast_chunks dask/array/tests/test_array_core.py::test_chunks_error dask/array/tests/test_array_core.py::test_array_compute_forward_kwargs dask/array/tests/test_array_core.py::test_dont_fuse_outputs dask/array/tests/test_array_core.py::test_dont_dealias_outputs dask/array/tests/test_array_core.py::test_timedelta_op dask/array/tests/test_array_core.py::test_to_delayed dask/array/tests/test_array_core.py::test_cumulative dask/array/tests/test_array_core.py::test_eye dask/array/tests/test_array_core.py::test_diag dask/array/tests/test_array_core.py::test_tril_triu dask/array/tests/test_array_core.py::test_tril_triu_errors dask/array/tests/test_array_core.py::test_atop_names dask/array/tests/test_array_core.py::test_atop_new_axes dask/array/tests/test_array_core.py::test_atop_kwargs dask/array/tests/test_array_core.py::test_atop_chunks dask/array/tests/test_array_core.py::test_from_delayed dask/array/tests/test_array_core.py::test_A_property dask/array/tests/test_array_core.py::test_copy_mutate dask/array/tests/test_array_core.py::test_npartitions dask/array/tests/test_array_core.py::test_astype_gh1151 dask/array/tests/test_array_core.py::test_elemwise_name dask/array/tests/test_array_core.py::test_map_blocks_name dask/array/tests/test_array_core.py::test_from_array_names dask/array/tests/test_array_core.py::test_array_picklable dask/array/tests/test_array_core.py::test_swapaxes dask/array/tests/test_array_core.py::test_from_array_raises_on_bad_chunks dask/array/tests/test_array_core.py::test_concatenate_axes dask/array/tests/test_array_core.py::test_atop_concatenate dask/array/tests/test_array_core.py::test_common_blockdim dask/array/tests/test_array_core.py::test_uneven_chunks_that_fit_neatly dask/array/tests/test_array_core.py::test_elemwise_uneven_chunks dask/array/tests/test_array_core.py::test_uneven_chunks_atop dask/array/tests/test_array_core.py::test_warn_bad_rechunking dask/array/tests/test_array_core.py::test_optimize_fuse_keys dask/array/tests/test_array_core.py::test_round dask/array/tests/test_array_core.py::test_repeat dask/array/tests/test_array_core.py::test_tile[0-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile[0-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile[1-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile[1-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile[2-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile[2-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile[3-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile[3-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile[5-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile[5-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile_neg_reps[-1-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile_neg_reps[-1-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile_neg_reps[-5-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile_neg_reps[-5-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile_array_reps[reps0-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile_array_reps[reps0-shape1-chunks1] dask/array/tests/test_array_core.py::test_tile_array_reps[reps1-shape0-chunks0] dask/array/tests/test_array_core.py::test_tile_array_reps[reps1-shape1-chunks1] dask/array/tests/test_array_core.py::test_concatenate_stack_dont_warn dask/array/tests/test_array_core.py::test_map_blocks_delayed dask/array/tests/test_array_core.py::test_no_chunks dask/array/tests/test_array_core.py::test_no_chunks_2d dask/array/tests/test_array_core.py::test_no_chunks_yes_chunks dask/array/tests/test_array_core.py::test_raise_informative_errors_no_chunks dask/array/tests/test_array_core.py::test_no_chunks_slicing_2d dask/array/tests/test_array_core.py::test_index_array_with_array_1d dask/array/tests/test_array_core.py::test_index_array_with_array_2d dask/array/tests/test_array_core.py::test_setitem_1d dask/array/tests/test_array_core.py::test_setitem_2d dask/array/tests/test_array_core.py::test_setitem_errs dask/array/tests/test_array_core.py::test_zero_slice_dtypes dask/array/tests/test_array_core.py::test_zero_sized_array_rechunk dask/array/tests/test_array_core.py::test_atop_zero_shape dask/array/tests/test_array_core.py::test_atop_zero_shape_new_axes dask/array/tests/test_array_core.py::test_broadcast_against_zero_shape dask/array/tests/test_array_core.py::test_fast_from_array dask/array/tests/test_array_core.py::test_random_from_array dask/array/tests/test_array_core.py::test_concatenate_errs dask/array/tests/test_array_core.py::test_stack_errs dask/array/tests/test_array_core.py::test_transpose_negative_axes dask/array/tests/test_array_core.py::test_atop_with_numpy_arrays dask/array/tests/test_array_core.py::test_elemwise_with_lists[other0-100] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other0-6] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other1-100] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other1-6] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other2-100] dask/array/tests/test_array_core.py::test_elemwise_with_lists[other2-6] dask/array/tests/test_array_core.py::test_constructor_plugin
dask/array/core.py
dask/array/core.py