1.numpy数组里面只有一种数据类型,如果既有整型又有字符串,那么都会变成字符串,如果既有整型又有浮点型,都会变成浮点型
1.numpy运行速度之所以快是由c语言编写的,数据类型需要我们命名所以运算速度快
- 1.浮点型创建数组
- import numpy as np
a = np.array([1,2,3,1.5])
a - 2.整型创建数组
- a = np.array([1,2,3])
a - 3.字符串创建数组
- a = np.array(‘123’)
a - 4.从头创建数组
- a = list(range(10))
a4 = np.array(a)
a4 - 5.生成范围数组对象,和range函数一样都可以选择步长
- a = np.arange(0,10)
a
2.np.zeros?可以查询这个方法
2.多维数组(有多少个[]就是多少维数组)
1.修改数组维度 ,一维到多维
- 把a8一维数组改成2行三列的二维数组
a = a8.reshape((2.3)) - 把a8一维数组改成三维数组
a = a8.reshape((1,1,6))
2.修改数组维度,多维到一维
- 二维转一维
- a8 = np.arange(12)
a2 = a8.reshape((2,6))
a1 = a2.reshape((12,))
a1 - 三维转一维
- a= a8.reshape((2,2,3))
a1 = a.reshape((12,))
a1 - 不管多少维度统一转化为一维(不影响原数组)
- a14 = a.flatten()
a14 - 不管多少维度统一转化为一维(影响原数组)
- a15 = a.ravel() # 数组转换为一维 会影响原数组
a15
3.数组属性
- n2
array([[1, 2, 3],
[4, 5, 6]])
1.ndim 秩
- n2.ndim
2
2.形状
- 二维数组
- n2
array([[1, 2, 3],
[4, 5, 6]]) - n2.shape
(2,3) 二维数组 2行 3列 - 三维数组
- n3
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]]) - n3.shape
- (2, 2, 3) 三维数组 总共两个元素 ,每个元素都是2行3列
- 数组中元素个数
- n2.size
6 - 数组中最大值的索引位置
a = np.arange(5)
- np.argmax(a,axis=0) ------------ 返回索引 4
4.切片
- 注:索引值为1是第二行 ,切片左闭右开,左边算右边不算
- 冒号之前是行的切片,冒号之后是列的切片
- a[ :1 , :2]
- 这是个第一行,前俩列的切片
- a[1: , :2]
- 除过第一行,后几行的,前俩列的切片
- a[1:3 , 1:2]
- 第二行到第三行,第一列的切片
布尔索引
- a3 = np.arange(40).reshape((5,8)) 生成五行八列的二维数组
a3 - array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29, 30, 31],
[32, 33, 34, 35, 36, 37, 38, 39]]) - a3<20 小于20的都变成True
array([[ True, True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True, True],
[ True, True, True, True, False, False, False, False],
[False, False, False, False, False, False, False, False],
[False, False, False, False, False, False, False, False]] - a3[a3<20] 生成所有大于20的一维数组
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19]) - a3[(a3 > 10) & (a3 < 20)] 大于10而且小于20的一维数组
array([11, 12, 13, 14, 15, 16, 17, 18, 19]) - a3[(a3 > 10) | (a3 < 5)] 大于10或者小于5的一维数组
array([ 0, 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]) - a3[0][0] = 100 替换第一行第一个数字为100
a3
array([[100, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[ 16, 17, 18, 19, 20, 21, 22, 23],
[ 24, 25, 26, 27, 28, 29, 30, 31],
[ 32, 33, 34, 35, 36, 37, 38, 39]]) - a3[0] = 10 替换第一行都是10
a3
array([[10, 10, 10, 10, 10, 10, 10, 10],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29, 30, 31],
[32, 33, 34, 35, 36, 37, 38, 39]]) - a3[0] = [1,2,4,5,6,7,8,55] 替换第一行
a3
array([[ 1, 2, 4, 5, 6, 7, 8, 55],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29, 30, 31],
[32, 33, 34, 35, 36, 37, 38, 39]]) - a3[a3>30] = 20 替换大于30的都变成20
a3
array([[ 1, 2, 4, 5, 6, 7, 8, 20],
[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23],
[24, 25, 26, 27, 28, 29, 30, 20],
[20, 20, 20, 20, 20, 20, 20, 20]])