【dataquest学习】numpy

import numpy
nfl = numpy.genfromtxt("nfl.csv", delimiter=",")

得到numpy.ndarray类型
但这样的读法有个问题,numpy会试图将strings转为floats,转不过来会变成nan。为了让读出的数据是string格式,加上参数dtype="U75"。

import numpy as np
import numpy
world_alcohol = numpy.genfromtxt("world_alcohol.csv",dtype="U75",skip_header=1,delimiter=",")
print(world_alcohol)

axis=0/1如何选择如下:

  • 1 means that we want to perform the operation on each row
  • 0 means on each column.
matrix = numpy.array([
                [5, 10, 15], 
                [20, 25, 30],
                [35, 40, 45]
             ])
    matrix.sum(axis=1)

得到:[30, 75, 120]

总结:
1、numpy是什么?

  • numpy库核心是提供了一种多维数组对象叫ndarray。
  • 矩阵matrix是numpy的特例,一个二维数组。
  • arr=np.array(data),得到ndarray型arr

2、numpy最大的劣势是什么?

  • 数组中每个元素必须是相同的数据格式,都是string/float...
  • 行和列必须用数字引用,没有行头/列头的概念

3、numpy使用功能有哪些?

  • 轻松转化元素的格式:如arr=arr.astype(float64)
  • 不用编写循环,批量执行数组对应元素的操作,如arr*arr,arr-arr
  • 各种索引和切片,当然任何修改会直接反映到源数据
    A. 数字切片
    第一个是行,第二个是列,如arr[1,:2]
    B. 布尔型索引
    如is_year=(arr[:,0]=='1990');arr[is_year,:]得到1990年对应的行
matrix = np.array([[5, 10, 15], 
                [20, 25, 30],
                [35, 40, 45]])
second_column_25 = (matrix[:,1] == 25)
print(second_column_25,matrix[second_column_25,:])

C. 花式索引:利用整数数组进行索引

arr=np.arange(32).reshape((8,4))
arr
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]])
arr[[1,5,7,2],[0,3,1,2]]
array([ 4, 23, 29, 10])
arr[[1,5,7,2]]
array([[ 4,  5,  6,  7],
       [20, 21, 22, 23],
       [28, 29, 30, 31],
       [ 8,  9, 10, 11]])
arr[[1,5,7,2]][:,[0,3,1,2]]
array([[ 4,  7,  5,  6],
       [20, 23, 21, 22],
       [28, 31, 29, 30],
       [ 8, 11,  9, 10]])
arr[np.ix_([1,5,7,2],[0,3,1,2])]
array([[ 4,  7,  5,  6],
       [20, 23, 21, 22],
       [28, 31, 29, 30],
       [ 8, 11,  9, 10]])
  • numpy提供了各类函数,如abs,sqrt,dot,transpose,where,unique,cumsum,cumprod
arr=np.arange(3)
print(arr)
np.where(arr>0,2,-2)
[0 1 2]
array([-2,  2,  2])

你可能感兴趣的:(【dataquest学习】numpy)