<h3 dir="auto">Describe the issue:</h3>
<p dir="auto">When importing Numpy or Pandas in a Python 3.11.3 Conda environment, I see (two, duplicates of the warning message listed below in "Error message" inputbox:</p>
<p dir="auto">I can't find MKL documentation explaining this warning.</p>
<p dir="auto">The messages are not suppressible with warnings.filterwarnings('ignore')</p>
<p dir="auto">Expected Behavior is that Deprecation warning messages can be suppressed and that messages explain possible remediation actions by user (e.g. install a different version of package xyz etc.)</p>
<h3 dir="auto">Reproduce the code example:</h3>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import numpy as np"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">numpy</span> <span class="pl-k">as</span> <span class="pl-s1">np</span></pre></div>
<h3 dir="auto">Error message:</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions."><pre class="notranslate">Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.</pre></div>
<h3 dir="auto">Runtime information:</h3>
<p dir="auto">Output of:<br>
print(np.<strong>version</strong>)<br>
print(sys.version)<br>
print(np.show_runtime())</p>
<p dir="auto">1.24.3<br>
3.11.3 (main, Apr 19 2023, 18:51:09) [Clang 14.0.6 ]<br>
WARNING: <code class="notranslate">threadpoolctl</code> not found in system! Install it by <code class="notranslate">pip install threadpoolctl</code>. Once installed, try <code class="notranslate">np.show_runtime</code> again for more detailed build information<br>
[{'simd_extensions': {'baseline': ['SSE', 'SSE2', 'SSE3'],<br>
'found': ['SSSE3', 'SSE41', 'POPCNT', 'SSE42'],<br>
'not_found': ['AVX',<br>
'F16C',<br>
'FMA3',<br>
'AVX2',<br>
'AVX512F',<br>
'AVX512CD',<br>
'AVX512_KNL',<br>
'AVX512_SKX',<br>
'AVX512_CLX',<br>
'AVX512_CNL',<br>
'AVX512_ICL']}}]<br>
None</p>
<h3 dir="auto">Context for the issue:</h3>
<p dir="auto">This creates a poor UI when working with both Numpy and Pandas.</p>
<p dir="auto"><code class="notranslate">dask.array.Array</code> implements <code class="notranslate">__array_ufunc__</code> to make calls of ufuncs with dask arguments lazy. However current implementation of <code class="notranslate">numpy.vectorize</code> triggers computation of dask inputs during broadcasting stage.</p>
<p dir="auto">Example:</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="a = da.ones((10,), chunks=2)

def pyfunc(x):
    return x

ufunc = np.vectorize(pyfunc)

b = ufunc(a)
# Out: array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
# Expected: another dask array, which is not yet computed"><pre class="notranslate"><span class="pl-s1">a</span> <span class="pl-c1">=</span> <span class="pl-s1">da</span>.<span class="pl-en">ones</span>((<span class="pl-c1">10</span>,), <span class="pl-s1">chunks</span><span class="pl-c1">=</span><span class="pl-c1">2</span>)

<span class="pl-k">def</span> <span class="pl-en">pyfunc</span>(<span class="pl-s1">x</span>):
    <span class="pl-k">return</span> <span class="pl-s1">x</span>

<span class="pl-s1">ufunc</span> <span class="pl-c1">=</span> <span class="pl-s1">np</span>.<span class="pl-en">vectorize</span>(<span class="pl-s1">pyfunc</span>)

<span class="pl-s1">b</span> <span class="pl-c1">=</span> <span class="pl-en">ufunc</span>(<span class="pl-s1">a</span>)
<span class="pl-c"># Out: array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])</span>
<span class="pl-c"># Expected: another dask array, which is not yet computed</span></pre></div>