1、数据源为数组ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。
#!/usr/bin/env python
import numpy as np
data = np.array([100, 200, 300])
a = np.array(data)
b = np.asarray(data)
print("数据源改变之前:")
print(a)
print(b)
data[2] = 888
print("数据源改变之后:")
print(a)
print(b)
数据源改变之前:
[100 200 300]
[100 200 300]
数据源改变之后:
[100 200 300]
[100 200 888]
2、数据源为列表时,两者没区别。
#!/usr/bin/env python
import numpy as np
data = [100, 200, 300]
a = np.array(data)
b = np.asarray(data)
print("数据源改变之前:")
print(a)
print(b)
data[2] = 888
print("数据源改变之后:")
print(a)
print(b)
数据源改变之前:
[100 200 300]
[100 200 300]
数据源改变之后:
[100 200 300]
[100 200 300]