一、多维数组对象ndarray
- ndarray是一个通用的同构数据多维容器,所有元素必须是相同类型的。
- 每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象)
二、创建ndarray
- 创建数组最简单的办法就是使用array函数。
- 接受一切序列的对象,然后产生一个新的含有传入数据的NumPy数组
import numpy as np
data1 = [6,7,8,9]
arr1 = np.array(data1)
print(arr1)
嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组:
import numpy as np
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print(arr2.ndim)
print(arr2.shape)
输出如下所示:
2
(2, 4)
np.array会为这个新建的数组推断出一个较为合适的数据类型。数据类型保存在一个特殊的dtype对象中。
print(arr2.dtype)
输出如下所示:
int64
显示转换类型
float_arr = arr2.astype(np.float64)
print(float_arr.dtype)
输出如下所示:
float64
三、数组和标量之间的运算
- 大小相等的数组之间的任何算术运算都会将运算应用到元素级。
- 数组与标量的算术运算会将那个标量值传播到各个元素。
arr3 = arr2 * 2
print(arr3)
输出如下所示:
[[ 2 4 6 8]
[10 12 14 16]]
四、基本的索引和切片
import numpy as np
arr = np.arange(10)
print(arr)
print(arr[5:8])
五、布尔型索引
import numpy as np
fruit = np.array(["苹果","香蕉","葡萄","梨子","香蕉"])
print(fruit == "香蕉")
输出如下所示:
[False True False False True]
import numpy as np
data = np.random.randn(5,4)
print(data)
data1 = data[fruit == "香蕉"]
print(data1)
data2 = data[fruit == "香蕉",2:]
print(data2)
输出如下所示:
[[ 0.49075004 1.55862386 1.03066782 0.22563899]
[-0.60533086 -0.36525286 1.14833953 -1.18084883]
[ 0.74664513 1.63439969 -1.55003165 0.12231136]
[-0.22104506 -1.38852615 -0.40339262 0.98258786]
[-0.39505004 2.00589232 -0.64130727 0.24946445]]
[[-0.60533086 -0.36525286 1.14833953 -1.18084883]
[-0.39505004 2.00589232 -0.64130727 0.24946445]]
[[ 1.14833953 -1.18084883]
[-0.64130727 0.24946445]]
六、数组转置和轴对称
import numpy as np
arr = np.arange(15).reshape((3,5))
print(arr)
print(arr.T)
高维数组:
arr = np.arange(16).reshape((2,2,4))
print(arr)
输出如下所示:
[[[ 0 1 2 3]
[ 4 5 6 7]]
[[ 8 9 10 11]
[12 13 14 15]]]
文章出处登录后可见!
已经登录?立即刷新