1.概述

1.np.array()  # 将列表转换为数组

import numpy as np

array = [1, 2, 3, 4, 5]
array = np.array(array)

2..shape  # 打印矩阵的维度, 也可以使用np.shape

import numpy as np

array = [1, 2, 3, 4, 5]
array = np.array(array)
print(array.shape)

2.array 结构

3.dtype 打印数组的数据类型

import numpy as np
tang_array = [1, 2, 3, 4]
tang_array = np.array(tang_array) print(tang_array.dtype)

4. .itemsize # 判断数组中每一个数字所占的字节数

print(tang_array.itemsize)

5. .size # 打印出数组中的元素个数, 不关心矩阵的维度

print(tang_array.size)

6. .ndim # 打印数组中的维度信息

print(tang_array.ndim)

7. .fill(0)  # 表示对当前数据进行填充,0表示填充的值

# .fill 对当前数据进行填充
tang_array = np.array([1, 2])
tang_array.fill(0)
print(tang_array)

8. numpy索引与切片

tang_array = np.array([1, 2, 3, 4])
print(tang_array[0])
print(tang_array[-2:])

9 .copy # 进行浅拷贝

tang_array2 = tang_array.copy()

10 .dtype设置数组类型 将列表转换为bool值根据bool值进行取值操作

tang_array = np.arange(0, 100, 10)
# 将列表转换为Bool值
bool_array = np.array([1, 0, 0, 1, 1, 1, 1, 0, 0, 0], dtype=bool)
# 根据bool值进行取值
print(tang_array[bool_array])

11.根据大于或者小于获得bool值根据bool值进行取值操作

tang_array = np.random.rand(10)
print(tang_array)
bool_array = tang_array > 0.5
print(bool_array)

12. np.where 对bool值进行操作,获得True的索引值

tang_array = np.random.rand(10)
bool_array = tang_array > 0.5
index = np.where(bool_array)
print(index)
print(tang_array[index])

13 .ndtype # 输出字节数

print(tang_array.nbytes)

14. .astype # 进行数据类型的转换,但是实际数据不发生改变

tang_array2 = tang_array.astype(np.float32)
print(tang_array2.dtype)

15. np.object格式,保存了数据的原来格式

array = np.array([1, 10, 3.5, 'str'], dtype=np.object)

3.数值计算

16. .sum(axis=0) # 进行数组的加和操作

import numpy as np

tang_array = np.array([[1, 2, 3],
[4, 5, 6]])
# 对axis=0,进行行与行进行加和
print(tang_array.sum(axis=0))
# 进行所有数据的加和
print(tang_array.min(axis=0))

print(tang_array.sum())
print(tang_array.sum(axis=-1))

17. .prod(axis=0) # 进行数组之间的乘积操作,axis=0表示行与行之间进行乘积

print(tang_array.prod())  # 所有元素进行相乘操作
print(tang_array.prod(axis=1))

18. .min(axis=0) 找出数组中数据最小的值,axis=0表示找出每一列的最小值,从上到下的操作

print(tang_array.min(axis=0))

19 .max(axis=0) # 找出数组中数据最大值的操作

print(tang_array.max(axis=0))

20  .argmax(axis=1) # 找出数组中每一行的最大值的位置

print(tang_array.argmax(axis=1))

21 .mean(axis=1)  # 找出数组中每一行均值的大小

print(tang_array.mean(axis=1))

22. std(axis=1) # 求出数组中每一行的标准差

print(tang_array.std(axis=1))

23. .var(axis=1) # 求出数组中每一行的方差

print(tang_array.var(axis=1))

24. .clip(2, 4)进行数据的范围限制, 小于2的用2表示,大于4的用4表示

print(tang_array.clip(2, 4))

25. .round(decimals=1) # 进行四舍五入,decimals表示保留小数点的后几位数

tang_array = np.array([1.12, 2.12, 3.12, 4.6])
print(tang_array.round(decimals=1))

4.排序

26. np.sort(value, axis=0)# 对数据进行排序操作

import numpy as np
tang_array = np.array([[1.5, 1.3, 7.5],
[5.6, 7.8, 1.2]])
# 对每一列进行排序
print(np.sort(tang_array, axis=0))

27.  .argsort(axis=0) # 打印排序后的索引位置

print(tang_array.argsort(axis=0))

28. np.linspace(0, 10, 11) # 进行范围的数据拆分

tang_array = np.linspace(0, 10, 11)

29. np.searchsorted(tang, value) # 将value插入tang_array 返回的是插入后的索引值

print(np.searchsorted(tang_array, value))

30. np.lexsort  # 指定列队数组进行排序操作

tang_array = np.array([[1, 0, 6],
[2, 7, 0],
[3, 3, 1],
[2, 4, 0]]) index = np.lexsort([tang_array[:, 2]])
print(tang_array[index])

5-数组形状

31. np.reshape(value, (2, 5)) # 进行矩阵的维度变化

tang_array = np.arange(10)
print(tang_array.shape)
# 通过.shape改变数据的维度
tang_array.shape = 2, 5
print(np.reshape(tang_array, (2, 5)))
print(tang_array)

32. np.newaxis # 表示增加一个矩阵维度

# 新增加一个维度 np.newaxis
tang_array = np.array([[1, 2],
[3, 4]])
tang_array = tang_array[:, :, np.newaxis]
print(tang_array.shape)

33 .squeeze(axis=3)  # 表示指定一个维度进行去除

print(tang_array.squeeze(axis=3).shape)

34 .transpose() 表示进行转置操作

tang_array = np.arange(0, 10, 1)
tang_array.shape = 2, 5
print(tang_array.transpose())

35. np.concatenate((a, b), axis=0)  # 进行矩阵的串接操作,(a, b)表示需要串接的tuple,axis=0进行上下的串接

a = np.array([[123, 456, 789], [3234, 456, 134]])
b = np.array([[123, 456, 789], [123, 546, 134]])
c = np.concatenate((a, b), axis=0)
print(c)

36. np.vstack((a, b)) # 进行矩阵的上下位置上的串接

c = np.vstack((a, b))
print(c)

37. np.hstack((a, b)) # 进行矩阵左右位置上的串接

c = np.hstack((a, b))
print(c)

38. .flatten() # 进行拉平操作,拉成一个维度

print(c.flatten())

39. .ravel()  # 进行拉平操作,也是拉成一个维度

print(c.ravel())

6-数组生成

40. np.arange(0, 10, 1)   # 0表示开始,10表示结束,1表示中间间隔

import numpy as np
# 根据np.arange进行数组1表示开始位置,10表示末位置, 2表示间隔
print(np.arange(1, 10, 2, dtype=np.float32))

41. np.linspace(0, 9, 10)  # 0表示起始位置,9表示结束,10表示拆分成10份

print(np.linspace(0, 9, 10))

42. np.logspace(0, 1, 11)  # 0表示起始位置, 1表示终止位置,11表示拆成11分,然后在输入

print(np.logspace(0, 1, 11))  #等价于10**0.1

43. np.meshgrid(x, y)   # 生成一个网格矩阵

x = np.linspace(0, 10, 11)
y = np.linspace(10, 20, 11)
x, y = np.meshgrid(x, y)
print(x)
print(y)

44. np.r_[0:10:1] 构造一个行向量

print(np.r_[0:10:1])

45. np.c_[0:10:1] # 构造一个列向量

print(np.c_[0:10:1])

46. np.zeros(3)

import numpy as np
# np.zeros 构造一个零矩阵
print(np.zeros(3))
print(np.zeros((2, 3)))

47. np.ones((3, 3))  # np.ones((3, 3))  表示3*3的维度

print(np.ones((3, 3)))

48. np.empty(size)  生成一个空矩阵

a = np.empty(6)
print(a)

49 np.zeros_like() 生成一个维度相同的零矩阵

tang_array = np.array([1, 2, 3, 4, 5])
tang_array2 = np.zeros_like(tang_array)
print(tang_array2)

50  np.ones_like() 生成一个维度相同的1矩阵

tang_array3 = np.ones_like(tang_array)
print(tang_array3)

51 np.identity(5)  # 生成一个形状是5的单位矩阵

print(np.identity(5))

7-运算

52. np.multiply(x, y) #将x和y进行对应位置相乘操作

import numpy as np 

x = np.array([5, 5])
y = np.array([2, 2])
# np.multiply(x, y) 将x和y进行对应位置相乘操作
print(np.multiply(x, y))

53. np.dot(x, y) #将x和y进行点乘操作,即矩阵运算(2, 1) * (1, 2) = (2, 2)

print(np.dot(x.reshape(2, 1), y.reshape(1, 2)))

54 # ndarray会进行数据的自动补全操作

x = np.array([1, 1, 1])
y = np.array([[1, 2, 3], [3, 4, 5]])
print(x + y)

55 np.logical_and # 如果两个都是真的就是真

x = np.array([1, 0, 1])
y = np.array([1, 1, 0])
print(x==y)
print(np.logical_and(x, y))

56. np.logical_or # 如果两个中有一个为真就是真

print(np.logical_or(x, y))

57. np.logical_not # 如果第二个数为1就是1,否者两个数都为0,等于1

print(np.logical_not(x, y))

8-随机矩阵

58. np.random.rand(3, 2)  # 构造一个(3, 2)的随机矩阵

import numpy as np
# 构造一个0,1之间的随机矩阵
print(np.random.rand(3, 2))

59. np.random.randint(0, 3, size=(2, 5))  # 构造一个0到2的随机整数矩阵,矩阵的维度是2,5

print(np.random.randint(0, 3, size=(5, 4)))

60 np.random.sample() # 返回一个0到1的随机数

print(np.random.sample())

61. np,random.uniform(0, 3, size=(2, 5)) # 从一个均匀的分布中随机取值

print(np.random.uniform(0, 1, size=(1, 1)))

62. np.random.normal(mu, sigma, size)  # 根据均值和标准差进行随机生成高斯矩阵

m = 0
sigma = 0.1 #标准差
print(np.random.normal(m, sigma, size=(10, 1)))

63. np.set_printoptions(precision=3) # 进行输出的精度设置,3表示的小数点的个数

np.set_printoptions(precision=3)
mu, sigma = 0, 0.1
n = np.random.normal(mu, sigma, 10)
print(n)

64 np.random.shuffle()  #对样本进行洗牌操作

tang_array = np.arange(0, 10, 1)
np.random.shuffle(tang_array)
print(tang_array)

65 np.random.seed(100)  # 设置随机种子,让每次随机获的参数的结果相同,为了更好的进行对比

np.random.seed(100)

x = np.random.normal(0, 0.1, size=(1, 10))
print(x)

9-读写

66. np.loadtxt('tang.txt', delimiter=",", skiprows=1), delimiter 表示分割符, skiprows表示去除第一行, usecols指定使用那几列数据

y = np.loadtxt('tang.txt', delimiter=',', skiprows=1)
print(y)

67. np.savetxt('tang2.txt', tang_array, fmt='%.2f', delimiter=',')

tang_array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32)
np.savetxt('tang2.txt', tang_array, fmt='%.2f', delimiter=',')

68. 进行单个array参数的载入和读取,保存的格式是npy

tang_array = np.array([1, 2, 3, 4], dtype=np.float32)

np.save('tang3.npy', tang_array)  # 写入文件

tang_array = np.load('tang3.npy')  # 读取文件
print(tang_array)

69. 进行多个array参数的载入和读取,使用的是np.savez,保存的格式是.npz,读取时使用key

tang_array = np.array([1, 2, 3, 4], dtype=np.float32)
tang_array2 = np.array([4, 5, 6, 7], dtype=np.float32) np.savez('tang.npz', a=tang_array, b=tang_array2) data = np.load('tang.npz')
print(data['a'])
print(data['b'])

练习题-1

70. np.__version__  # 打印numpy当前的版本

import numpy as np
print(np.__version__)

71 # 构造一个全零矩阵,并打印其所占内存数

z = np.zeros((5, 5))
print(z.size * z.itemsize)
print(z.nbytes)

72 # 打印一个函数的帮助文档 help(np.info(np,add))

print(help(np.info(np.add)))

73. # 创建一个10-49的数组,并将其倒序排列

tang_array = np.arange(10, 50, 1)
tang = tang_array[::-1]
print(tang)

74  np.nonzero(tang_array) # 找出一个数组中不为0的索引值

print(np.nonzero([1, 2, 3, 4, 5, 0, 0, 3]))

75 # 随机构造一个3*3矩阵, 打印其最大值和最小值

np.random.seed(9)
tang_array = np.random.randint(0, 10, size=(5, 6))
print(tang_array.min())
print(tang_array.max())

76 np.pad(tang_array, add_size, 'constant', constant_values=0) 构造一个5*5的矩阵,令其值为1,在最外层加上一圈0

tang_array = np.ones((5, 5))
tang_array2 = np.pad(tang_array, 1, 'constant', constant_values=0)
print(tang_array2)

77.  np.unravel_index(100, (6, 7, 8))   # 构建一个shape为(6, 7, 8)的矩阵,并找出第100个元素的索引值

print(np.unravel_index(100, (6, 7, 8)))

78. # 对一个5*5矩阵做0到1归一化操作

tang_array = np.random.random((5, 5))
tang_array = (tang_array - tang_array.min()) / (tang_array.max() - tang_array.min())

79. np.intersect1d(z1, z2)  # 找出两个数组相同的数

 np.random.randint(0, 11, 10)
z2 = np.random.randint(0, 11, 10)
print(np.intersect1d(z1, z2))

80. np.datetime64('today', 'D')  np.timedelta64(1, 'D') # 得到昨天今天明天

yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')
print(yesterday)

81. 得到一个月中所有的天数

print(np.arange('2017-10', '2017-11', dtype='datetime64[D]'))

82. np.floor(value) # 取出一个数的整数部分

tang_array = np.random.uniform(0, 10, 10)
print(np.floor(tang_array))

83 z.flags.writeable # 使得这个数组不能被改变

z = np.zeros(5)
z.flags.writeable = False
z[0] = 1

84. np.set_printoptin(threshold=np.nan)  # 使得数组全部打印出来

np.set_printoptions(threshold=np.nan)
z = np.zeros((5, 5))
print(z)

85.# 在一个数组中,找出最接近一个数的索引

z = np.arange(100)
v = np.random.uniform(0, 100)
print(v)
index = np.abs(z - v).argmin()
print(index)

86 # 进行float32与int32的类型转换

z = np.arange(10, dtype=np.float32)
l = z.astype(np.int32)
print(l.dtype)

87. # 打印数组的元素坐标与值

z = np.arange(9).reshape(3, 3)
for index, value in np.ndenumerate(z):
print(index, value)

88. 按照数组的某一列进行排序

z = np.random.randint(0, 10, (4, 3))
print(z[z[:, 1].argsort()])

89. np.bincount(tang_array) # 统计数组中元素的个数

z = np.array([1, 1, 1, 2, 2, 3, 4, 5])
print(np.bincount(z))

90. 对最后两个维度进行加和操作

tang_array = np.random.randint(0, 10, (4, 4, 4, 4))
print(tang_array.sum(axis=(-2, -1)))

91 # 交换矩阵的两行

tang_array = np.random.randint(0, 10, (3, 4))
tang_array[[1, 2]] = tang_array[[2, 1]]
print(tang_array)

92 #找出数组中最常出现的数字

z = np.random.randint(0, 10, 10)
print(np.bincount(z).argmax())

93 np.argpartition(-z, n)[:n]    #找出K个最大值的索引和值

z = np.arange(10000)
np.random.shuffle(z)
n = 5
print(np.argpartition(-z, n)[:n])

94. np.all(x==y, aixs=1) #找出一行中都相同的数,打印True

# 找出所有元素都相同的数据
x = np.array([[1, 1]])
p = np.array([[1, 1]])
print(np.all(x == p, axis=1)) z = np.random.randint(0, 5, (10, 3))
print(np.all(z[:, 1:]==z[:, :-1]))

最新文章

  1. 在Python中使用可变长参数列表
  2. java中获取比毫秒更为精确的时间
  3. java类的封装 继承 多态
  4. 必须关注的25位知名JavaScript开发者
  5. Windows下安装GnuRadio最简单的方法(没有之一)
  6. 自己写的操作sql的公共类
  7. 【Demo 0004】Android 布局
  8. HTTP method GET is not supported by this URL(转)
  9. Zookeeper的安装和配置
  10. eclipse环境下,java操作MySQL的简单演示
  11. hadoop初学
  12. Go基础(1)
  13. App阅读pdf和扫描二维码功能
  14. [模板] 网络流相关/最大流ISAP/费用流zkw
  15. java程序中的乱码方案
  16. 学习Python第六天
  17. php定界符<<<EOF讲解
  18. SonarQube与Eclipse配合
  19. SqlServer中的数据库分类
  20. Unity3D笔记 Collect

热门文章

  1. 《剑指offer》习题解答(C/C++)
  2. 057——VUE中vue-router之路由参数默认值的设置
  3. checkbox选中的问题(Ajax.BeginForm)
  4. Portability Flaw Locale Dependent Comparison
  5. Django 之 自定义中间件
  6. W: GPG error: http://dl.google.com/linux/chrome/deb stable Release: The following signatures couldn'
  7. 【spring源码学习】Spring @PostConstruct和@PreDestroy实例
  8. 【转】linux中inittab文件详解
  9. 1.Appium环境搭建
  10. erp中三大订单CO、PO、MO