一、Pymatgen介绍:
Pymatgen (Python Materials Genomics) 是一个强大的开源 Python 库,用于材料分析。具体可以参考官网。
其官网地址为:Home | pymatgen
二、Pymatgen的功能:
官网介绍了很多的功能,但是我只会获取元素基本属性的功能。
三、安装Pymatgen
在anaconda环境中,输入pip install pymatgen
四、代码:
(4.1)
首先要知道Pymatgen到底包含了元素的哪些基本属性,代码如下:
from pymatgen.core import Element
# 获取所有元素的实例
elements = [Element(el) for el in Element]
# 获取第一个元素的所有属性
first_el = elements[0]
all_attributes = [attr for attr in dir(first_el) if not attr.startswith('__')]
# 打印所有属性
print("Available attributes for Element objects:")
for attr in all_attributes:
print(attr)
运行结果如下:
(4.2)
接下来就可以获取元素的属性数值了,代码如下:
import pandas as pd
import numpy as np
from pymatgen.core import Element
import warnings
# 忽略电负性警告
warnings.filterwarnings("ignore", category=UserWarning)
# 获取所有元素的属性
elements = [str(el.symbol) for el in Element]
properties = {
"Element": elements,
"Atomic Number": [el.atomic_mass_number for el in Element],
"Atomic Mass": [el.X for el in Element],
"Atomic Radius": [el.atomic_radius for el in Element],
"Van Der Waals Radius": [el.van_der_waals_radius for el in Element],
"Electronegativity": [el.X for el in Element], # 获取电负性,忽略警告
"Is Metal": [el.is_metal for el in Element]
}
# 将属性数据转换为DataFrame
df_properties = pd.DataFrame(properties)
# 保存DataFrame到CSV文件
df_properties.to_csv('element_properties.csv', index=False)
print(df_properties)
注意:
“
# 忽略电负性警告
warnings.filterwarnings("ignore", category=UserWarning)
”
这一行代码很重要,因为有些元素的电负性是空的,会报错,所以要忽略错误。
下面是运行结果