[Python For Data Analysis] Numpy Basics

时间:2022-12-28 04:17:29

创建数组

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.onesnp.zeros 接收一个表示ndarray形状的元组或整数(1维),创建一个指定类型的被 0 、 1 填充的 ndarray

np.ones_likenp.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
使用一个由 truefalse 组成的 ndarray进行索引,来选择满足某些条件的对象。

Fancy Indexing
使用也给由整数组成的ndarray,来以特定的顺序来选择一个子集。
Fancy Indexing总是会进行复制操作。