1、python自带的【list】局限性:
array = [1,2,3,4,5]
array + 1
Traceback (most recent call last):
File “<pyshell#1>”, line 1, in
array + 1
TypeError: can only concatenate list (not “int”) to list
建议使用:
import numpy as np
array = np.array([1,2,3,4,5])
print(type(array))
·<class ‘numpy.ndarray’>
用**np.array()**操作后即可执行如下操作:
array2 = array + 1
array + array2
注意:
array * array2
为对应元素相乘。
2、array.shape:
array = [1,2,3,4,5]
array.shape
(5,)
而原python无list.shape属性。
np.array([[1,2,3], [4,5,6]]).shape
>(2,3)
np.array([[[1,2,3], [4,5,6]]])
>(1,2,3)
3、对ndarray结构来说,里面所有的元素必须是同一类型。如果不是,会自动地向下进行转换。
tang_list = [1,2,3,4,5.1]
tang_array = np.array(tang_list)
tang_array
>array([1., 2., 3., 4., 5. )
type(tang_array)
>numpy_ndarray
tang_array.dtype
>dtype('int32')
4、列表的本质是指针
array2 = array1
当对array2进行修改时,array1也会被执行相同操作。若想保持array1不变,可使用:
array2 = array1.copy()
这样array1和array2指向不同区域。
5、创建数据集
tang_array = np.arrange(0,100,10)
tang_array
>array([0, 10, 20, 30, 40, 50, 60, 70, 80, 90])
bool类型:
mask = np.array([0, 0, 0, 0, 0, 0, 1, 1, 1, 1], dtype = bool)
mask
>array([False, False, False, False, False, False, True, True, True, True])
tang_array[mask]
array([60, 70, 80, 90])
随机生成:
random_array = np.random.rand(10)
mask = random_array > 0.5
>array([False, False, True, ...])
返回一个bool类型值。
np.where(tang_array > 30)
>(array([4, 5, 6, 7, 8, 9], dtype=int64), )
返回一个索引值。
创建过程也可以选定类型:
tang_array = np.array([1,2,3,4,5], dtype = float32)
如果列表出现数值和字符串共存的情况,可指定object类型
tang_array = np.array([1, 2, 3, 4, 5, 'str'], dtype = np.object)
tang_array
>array([1, 2, 3, 4, 5, 'str'], dtype = np.object)
6、利用astype进行数据类型转换
tang_array.astype(np.float32)