创建数组
import numpy as np
# np.array 将一个iterable object转换为 ndarray
data2 = [[2, 3, 4], [5, 6, 7]]
arr2 = np.array(data2, dtype = np.float64)
#[[2. 3. 4.]
# [5. 6. 7.]]
arr3 = np.array(data2, dtype = np.int32)
#[[2 3 4]
# [5 6 7]]
# astype 方式将一种数据类型的array转换为另一个类型的array
float32_arr = arr2.astype(np.float32)
numeric_strings = np.array(['1.23', '-9.6', '43.4'], dtype=np.string_)
# [b'1.23' b'-9.6' b'43.4']
arr4 = numeric_strings.astype(float)
# [ 1.23 -9.6 43.4 ] float64
np.array
接收一个iterable ojbect
,将其转换为一个ndarray
np.ones
、np.zeros
接收一个表示ndarray
形状的元组或整数(1维),创建一个指定类型的被 0 、 1 填充的 ndarray
np.ones_like
、np.zeros_like
接收一个ndarray
,创建一个与被接收数组形状相同的ndarray
,被 0、1填充
基本的索引以及切片
numpy中的索引及切片操作不会进行复制操作。
对于多维数组,每个索引对应的对象不再是一个标量,而是另一个数组。
arr2d = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(arr2d[:2])
# [[1, 2, 3], [4, 5, 6]]
Boolean Indexing
使用一个由 true
和 false
组成的 ndarray
进行索引,来选择满足某些条件的对象。
Fancy Indexing
使用也给由整数组成的ndarray
,来以特定的顺序来选择一个子集。Fancy Indexing
总是会进行复制操作。