Skip to content

Commit fc75b6b

Browse files
committed
use np.concat to avoid copies
Co-authored-by: @neutrinoceros
1 parent 6578c48 commit fc75b6b

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

cmasher/utils.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -305,24 +305,18 @@ def combine_cmaps(
305305

306306
# Generate default nodes for equal separation
307307
if nodes is None:
308-
nodes_arr = np.linspace(0, 1, len(_cmaps) + 1)[1:-1]
309-
elif isinstance(nodes, list):
310-
nodes_arr = np.array(nodes)
311-
elif isinstance(nodes, np.ndarray):
312-
nodes_arr = nodes
308+
nodes_arr = np.linspace(0, 1, len(_cmaps) + 1)
309+
elif isinstance(nodes, (list, np.ndarray)):
310+
nodes_arr = np.concatenate([[0.0], nodes, [1.0]])
313311
else:
314312
raise TypeError(f"Unsupported nodes type: {type(nodes)}.")
315313

316314
# Check nodes length
317-
if len(nodes_arr) != len(_cmaps) - 1:
315+
if len(nodes_arr) != len(_cmaps) + 1:
318316
raise ValueError(
319317
"Number of nodes should be one less than the number of colormaps."
320318
)
321319

322-
# Insert the start/end points to make segmenting easier
323-
nodes_arr = np.insert(nodes_arr, 0, 0.0)
324-
nodes_arr = np.append(nodes_arr, 1.0)
325-
326320
# Check node values
327321
if any((nodes_arr < 0) | (nodes_arr > 1)) or any(np.diff(nodes_arr) <= 0):
328322
raise ValueError(

0 commit comments

Comments
 (0)