python數據分析與展現(二)

數據存取與函數數組

1、CSV文件dom

CSV(Comma-Separated Value,逗號分隔值),CSV是一種常見的文件格式,用來存儲批量數據。函數

CSV文件只能有效存儲一位和二維數組。spa

寫入數組:3d

import numpy as np

np.savetxt(frame,array,fmt='%.18e',delimiter=None)

#   frame:文件、字符串或產生器,能夠是.gz或.bz2的壓縮文件
#   array:存入文件的數組
#   fmt:寫入文件的格式,例如%d %.2f %.18e
#   delimiter:分割字符串,默認是任何空格

例子:code

import numpy as np

a=np.arange(100).reshape((5,20))
np.savetxt('a.csv',a,fmt='%d',delimiter=',',header="實驗數組",encoding='utf-8')
# 實驗數組
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
40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59
60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79
80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99

讀出數組:orm

import numpy as np

np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)

#   frame:文件、字符串或產生器,能夠是.gz或.bz2的壓縮文件
#   dtype:數據類型,可選
#   delimeter:分割字符串,默認是空格
#   unpack:若是True,讀入屬性分別寫入不一樣變量

例子:blog

import numpy as np

a=np.loadtxt('a.csv',dtype=np.float,delimiter=',')
print(a)

'''
[[ 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.]
 [40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
  58. 59.]
 [60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77.
  78. 79.]
 [80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
  98. 99.]]
'''

2、多維數據的的存取utf-8

寫入數組:字符串

import numpy as np

np.tofile(frame,sep='',format='%s')

#   frame:文件、字符串
#   sep:數據分割字符串,若是是空串,寫入文件爲二進制
#   format:寫入數據的格式

例子:

import numpy as np

a=np.arange(100).reshape((5,20))
a.tofile('a.dat',sep=',',format='%d')
a.tofile('b.dat',format='%d')  #此時寫入的是二進制格

讀出數組:

np.fromfile(frame,dtype=float,count=-1,sep='')

#   frame:文件、字符串
#   dtype:讀取的數據類型
#   count:讀入元素的個數,-1表示讀入整個文件
#   sep:數據分割字符串,若是是空串,寫入文件爲二進制

例子:

import numpy as np

a=np.fromfile('a.dat',dtype=np.int,sep=',').reshape((5,20))
print(a)
'''
[[ 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]
 [40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59]
 [60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79]
 [80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]]
'''

注意:該方法須要讀取時知道存入文件時數組的維度和元素類型,a.tofile()和np.fromfile()須要配合使用,能夠經過元數據文件來存儲額外信息

3、多維數組的便捷文件存取

import numpy as np

np.save(fname,array)   #np.savez(frame,array)

#   fname:文件名,以.npy爲擴展名,壓縮擴展名爲.npz
#   array:數組變量

np.load(fname)

#   fname:文件名,以.npy爲擴展名,壓縮擴展名爲.npz

例子:

import numpy as np

a=np.arange(100).reshape((2,5,10))
np.save('a.npy',a)
a=np.load('a.npy')
print(a)
'''
[[[ 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]
  [40 41 42 43 44 45 46 47 48 49]]

 [[50 51 52 53 54 55 56 57 58 59]
  [60 61 62 63 64 65 66 67 68 69]
  [70 71 72 73 74 75 76 77 78 79]
  [80 81 82 83 84 85 86 87 88 89]
  [90 91 92 93 94 95 96 97 98 99]]]
'''

4、NumPy的隨機函數

NumPy的隨機函數子庫是random庫

 例子:

例子:

例子:

5、NumPy統計函數

例子:

例子:

6、NimPy的梯度函數

  • np.gradient(f):計算數組f元素的梯度,當f爲多維時,返回每一個維度梯度
  • 梯度:連續值之間的變化率,即斜率。XY座標軸連續三個X座標對應的Y軸值,其中b的梯度是:(c-a)/2

例子:

相關文章
相關標籤/搜索