def symbols_to_numbers(symbols):
"""Given element symbol(s), return the atomic number(s) (number of protons).
Args:
symbols (str or list of str): Atomic symbol(s).
Returns:
ndarray: Atomic number(s) (number of protons).
Raises:
ValueError: If a given atomic symbol is invalid and doesn't have a
corresponding number.
"""
single_value = False
if isinstance(symbols, (str, np.str_)):
symbols = [symbols]
single_value = True
numbers = []
for symbol in symbols:
number = SYMBOL_TO_NUMBER_MAP.get(symbol)
if number is None:
raise ValueError(
"Given atomic symbol {} is invalid and doesn't have a number "
"associated with it.".format(symbol)
)
numbers.append(number)
return numbers[0] if single_value else np.array(numbers)
评论列表
文章目录