python北京快3app科学包

Tavish Aggarwal.
I

了解在解决北京快3app科学问题时很有用的包非常重要。我将谈论Python中可用的软件包,用于解决北京快3app相关问题。

包裹是什么?为什么需要?

在Python核心中添加所有内容将弥补。所以包装是介绍的。

包裹只不过是一堆尝试解决特定问题的脚本文件。这些脚本的集合称为包。

像我们这样的开发人员开发了成千上万的包裹。在这里,我们只会谈论用于北京快3app科学的软件包。

如果您一直在关注,我已经介绍了我们为北京快3app科学提供的一些包装: 关联.

为了快速回顾一些我们将在此帖子中谈论的包装是:

  1. numpy.
  2. matplotlib.
  3. 熊猫
  4. 克里克特 - 学习

要使用上面的包,我们需要在我们的系统上安装它们。要安装软件包,我们需要有PIP,它是Python的包维护系统。

在系统上安装pip跟随 关联.

安装pip后,运行以下命令以安装包:

pip3 install numpy

上面的命令将在我们的系统上安装numpy包。

现在我们拥有我们的系统上安装的软件包,它在Python脚本中使用它们的时间。首先在我们的Python脚本中使用它们,我们需要导入它们。

我们在脚本中导入包的方式是:

import numpy 

现在要使用numpy功能,我们可以编写以下代码:

npmpy.array([1,2])

另一种方式是:

import numpy as np

np.array([1,2])

But if we want to use 大批() function directly then we can use the following script:

from numpy import array

array([1,2])

既然我们清楚地用包装,以及如何在我们的代码中使用它们,它是探索上述Python软件包提供的功能的时间。

numpy.介绍

numpy.包提供了列表的替代方法:这是numpy数组。 numpy数组更强大,并且有很多功能可以提供Python列表。

假设我们有两个numpy阵列,如下所示:

import numpy as np

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

a1 * a2

#Output:
array([ 4, 10, 18])

但如果您尝试使用正常列表执行此操作:

a1 = [1,2,3]
a2 = [4,5,6]

a1 * a2

Output:
TypeError: can't multiply sequence by non-int of type 'list'

现在你会意识到numpy包的力量。

笔记:numpy包假设数组的北京快3app类型相同。

使用numpy创建数组

As of now, we have seen creating a numpy array using 大批() function. Apart from the 大批() function, numpy provides other functions as well to create a numpy array:

  1. np.ones(size):创建一个1s的数组
  2. np.zeros(size):创建一个0s数组
  3. np.random.random(size):在0到1之间创建一个随机数的数组
  4. np.arange(start index, end index, interval):创建一个具有固定步长大小的增量的数组
  5. np.linspace():创建一个固定长度的数组
  6. np.full():创建任何数字'n'的常数数组
  7. np.tile():创建一个新的数组 - 通过重复现有数组 - 对于特定的次数
  8. np.eye():创建任何维度的身份矩阵
  9. np.randint():在特定范围内创建一个随机的整数数组

请参阅下面显示的示例,展示了上面讨论的函数的使用情况:

import numpy as np

print(np.ones([2,3]))

# Output
[[1. 1. 1.]
 [1. 1. 1.]]

print(np.zeros([2,3], dtype=np.int))

# Output
[[0 0 0]
 [0 0 0]]

print(np.random.random([2,3]))

# Output
[[0.24902248 0.80429347 0.58541468]
 [0.97517227 0.3406624  0.30174668]]

print(np.arange(0,10,2))

# Output
[0 2 4 6 8]

到现在为止还挺好。我们已经看到了创建1-D阵列的方法。我们可以使用numpy包创建一个n尺寸阵列。请参阅下面显示的示例以创建2D NumPy数组:

import numpy as np
a1 = np.array([[1,2,4], [2,3,5]])

numpy.数组的结构

We can see the number of rows and columns in our array using shape attribute. Refer to the code shown below:

a1.shape

Output:
(2, 3) # where 2 represent rows and 3 represent columns

类似于形状函数,还有其他功能,也可以帮助我们检查numpy数组。请参阅下面显示的示例:

print(a1.dtype) # Data Type of numpy array

print(a1.ndim) # No of dimension/axis of an array

print(a1.itemsize) # Memory used by each element of array

子字数在numpy数组上 

我们可以访问使用numpy包创建的数组的元素。请参阅下面显示的示例:

import numpy as np

a1 = np.array([1,2,3])
print(a1[0])

#Output:
1

笔记: DUMPY数组中的子集是SIMILLAR到列表的典型索引。

我们也可以在n维空间中进行亚数组。考虑下面显示的示例:

import numpy as np

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

print(a1[0][2]) # where 0 represent row and 2 represent column

#Output:
4

我们可以使用的另一种语法是:

print(a1[0, 2])

上面的代码也将导致相同的输出。

如果我们想检查2D数组的第一行,我们可以这样做:

print(a1[0])

Output:
[1 2 4]

numpy.数组上的操作

numpy.提供了我们可以在使用numpy生成的阵列上执行的操作。其中很少有人如下所列:

  1. 重塑
  2. 刹来
  3. 堆叠
  4. 数学运作

让我们在一个例子的帮助下详细讨论它们。

重塑

我们可以将任何阵列重塑到我们想要的任何形状。考虑我们具有大小10的一维数组的示例。我们希望将其重新塑成二维数组:

import numpy as np

arr = np.arange(10)

print(arr.reshape(2,-1))

您可能已经注意到我们通过2和-1作为重塑函数的参数。这里--1表示调整维度以结合在2D阵列中的所有元素。

刹来 

转发装置使用阵列的列交换行。请参阅下面显示的代码转换。

np.arange(10).reshape(2,-1).T

这里在上面所示的示例中,我正在创建一个2D阵列然后将其传输。

堆叠

堆叠 means combining two or more arrays either vertically or horizontally. Numpy provides hstack() and vstack() functions to stack arrays horizontally and vertically. Refer to the example shown below:

import numpy as np

arr1 = np.arange(10).reshape(5,2)
arr2 = np.arange(6).reshape(3,2)
arr3 = np.arange(20).reshape(5,4)

print(np.vstack((arr1, arr2)))

print(np.hstack((arr1, arr3)))

笔记: 要垂直堆叠数组,列数应相同并堆叠阵列水平行数应相同。

数学运作

我们可以在numpy数组上执行像SIN,COS,日志,添加,乘法等的操作。

import numpy as np

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

print(np.sin(a1))
print(np.cos(a1))
print(np.log(a1))
print(a2)

我们在上面显示的示例中看到了一些内置函数。除了应用内置功能外,还可以在Numpy数组上应用自定义函数。请参阅下面显示的代码:

import numpy as np

a1 = np.array([[1,2,4], [2,3,5]])
func = np.vectorize(lambda x: x**2)

print(func(a1))

我们正在使用Vectorize函数将自定义函数应用于numpy数组。我们可以使用列表理解来实现相同的结果:

print([x**2 for x in a1])

但是,不建议我们不会在这里使用Numpy计算速度。

使用n的基本统计北京快3appumpy.

我们可以轻松地执行平均值,中位数,标准偏差等基本统计操作。

执行numpy操作的第一步是导入numpy包:

import numpy as np

person = np.array([20,50,60,40,50]) # weight of person

#To find out mean
person_mean = np.mean(person)

#To find median
person_median = np.median(person)

# To find standard deviation
person_sd = np.std(person)

#To find correlation
person = np.array([[20,2.6], [50,6], [60, 5.5], [40, 4], [50, 5]]) # Where values depict weight and height respectively

np.corrcoef(person[:,0],person[:,1])

There are a lot more operations like sum() and sort() that are available in python.

import numpy as np

person = np.array([20,50,60,40,50]) # weight of person

person_sum = np.sum(person)

person_sort = np.sort(person)

numpy.可以做更多的事情。以上演示是让您开始执行Numpy操作。要了解更多关于它,您可以访问一个 关联.

逻辑运算符用numpy

numpy.提供像Logical_or和Logical_and这样的逻辑运算符。请参阅下面显示的示例:

import numpy as np

science_score = np.array([18.0, 20.0, 11.75, 19.50])
math_score = np.array([14.6, 14.0, 18.25, 19.0])

# List of score greater then 13 or less than 10
print(np.logical_or(science_score > 13, science_score < 10))

#ouput:
[ True  True False  True]

# List of math score between 13 and 15
print(np.logical_and(math_score > 13 , math_score < 15))

# output
[ True  True False False]

循环 numpy. 大批

We can even loop over 1D or 2D numpy array. Looping over a 1D numpy array is as simple as looping over the list. But if we have to loop over numpy 2D array we have to use the nditer function provided by numpy. Consider the example shown below:

# Looping over 1D array
import numpy as np

population = np.array(['500','600','550','700'])

for x in population :
    print(str(x) + ' billion')

# ouput
500 billion
600 billion
550 billion
700 billion


# Looping over 2D array

population = np.array([['india','500'], ['china','600'], ['autralia','550'], ['france','700']])

for x in np.nditer(population) :
        print(x)

# output
india
500
china
600
autralia
550
france
700

介绍 matplotlib.

现在我们知道我们如何浏览北京快3app集并使用Numpy获取北京快3app集中所需的信息。但是,您认为是否有可能知道您的北京快3app在未能可视化的情况下的趋势或模式?根据我,答案绝对是没有。在没有可视化的情况下确实挑战。

我们有Matplotlib帮助我们可视化我们的北京快3app。

要安装Matplotlib,我们需要再次使用PIP:

pip3 install matplotlib

安装后我们需要在使用之前导入:

import matplotlib.pyplot as pyt

population = [123, 243, 456, 690] # in million
year = [1995, 1996, 1997, 1998]

pyt.plot(year, population) # year on x-axis and population on y-axis
pyt.show() # To show the plot

笔记:Plot()函数用于创建界面图表。

以类似的方式,还有其他类型的图表,我们可以创建。例如,让我们尝试散点图。

pyt.scatter(year, population)

plt.grid(True) # To show grid in graphs

pyt.show()

它将显示散点图。

直方图

直方图怎么样?我认为这种类型的图表是可视化北京快3app的最佳方式。让我们入门并创建直方图:

import matplotlib.pyplot as pyt

age = [20, 56, 67, 40, 89, 90, 23, 45, 68, 23, 11, 18]

pyt.hist(age, bins=3)
pyt.show()

直方图基于垃圾箱工作。我们定义了我们获得的栏的数量。

如上所示,我们可以看到产生三个条形。这就是直方图如何在Python中使用。 

我们可以将其他参数传递给直方图。了解更多结果:

help(pyt.hist)

笔记:如果我们没有提及箱子,默认情况下Python将需要10个。

现在我们有了解如何创建北京快3app的可视化。让我们看看我们如何让我们的图表更加表达。

我们可以在显示它们之前标记和标题和标题,如下所示:

import matplotlib.pyplot as pyt

population = [123, 243, 456, 690] # in million
year = [1995, 1996, 1997, 1998]

pyt.plot(year, population)
pyt.xlabel('year')
pyt.ylabel('population')
pyt.title('Graph showing population over year')

pyt.show()

还有一些其他自定义,我们可以对我们的可视化进行。要了解有关Matplotlib的更多信息: 关联 要了解更多关于各种可视化的更多信息 使用Python的北京快3app可视化.

熊猫介绍

我们通常具有大量北京快3app。并处理它我们已经探索了numpy。但是能够处理北京快3app的numpy?答案是肯定的,但有限制。 NUMPY如果北京快3app具有相同类型,可以处理北京快3app。在现实世界中,很难拥有相同类型的北京快3app。所以在那时,需要熊猫。 

笔记: 熊猫建于Numpy之上。

熊猫存储北京快3app的北京快3app帧的形式。我们甚至可以使用熊猫导入CSV文件。让我们探索更多关于北京快3app帧的信息,并查看如何存储北京快3app标记中的北京快3app。

如何从字典中创建北京快3app帧?

我有一个如下代码所示的字典,我们使用Pandas创建了一个北京快3app帧。

import pandas as ps

countryData = {
       'country': ['india', 'australia'],
       'population': [500, 600]
}

ps.DataFrame(data=countryData)

# output
     country  population
0      india         500
1  australia         600

要更改上述北京快3app框的索引:

data = ps.DataFrame(data=countryData)
data.index = ['IN', 'AUS']
print(data)

# output
      country  population
IN       india         500
AUS  australia         600

要打印北京快3app框的所选列:

data = ps.DataFrame(data=countryData)
data.index = ['IN', 'AUS']

data['country'] # It will output the pandas series
data[['country']] # It will output pandas dataFrame
data[['country', 'population']] # It is used to select more than 1 column

data[0:2] # It will output first 2 observations (rows)

To select the row in DataFrame we use loc or iloc. The difference between two is: If we use iloc then we need to supply an integer index but with loc, we can use the string index only. Look at the example shown below:

# Syntax data.loc[rows, columns]

data = ps.DataFrame(data=countryData)
data.index = ['IN', 'AUS']

data.iloc[1] # will return 2nd row
data.iloc['IN'] # error

data.loc[1] # error
data.loc['IN'] # return 1st row

data.loc[['IN','AUS']] # similar to column selection

笔记: 熊猫 recommend to use loc or iloc to select data from the dataframe instead of using [] to select the data. For e.g. data['IN']

To import a CSV file as a data frame we use read_csv() function provided by pandas:

import pandas as pds

population = pds.read_csv('./population.csv', index_col=0)

笔记: index_col设置为0,告诉read_csv函数csv文件中的第1行是标题。

Most of the time we will be dealing with large datasets, and it is not a good practice to read all the data in one go. Doing so will have a drastic performance impact. With pandas we can read data in chunks using the chunksize property as demonstrated below:

import pandas as pd

sub_dataset = pd.read_csv('test.csv', chunksize=10)

# on demand data
print(next(sub_dataset))

熊猫的逻辑运营

就像我们可以在Numpy数组上执行逻辑操作,以非常类似的方式,我们也可以在Pandas北京快3app帧上执行逻辑操作:

import pandas as ps

countryData = { 
              'country': ['India', 'China', 'France'], 
              'population': [560, 880, 990], 
              'averageRate': [15, 37, 18] 
}

dataSet = ps.DataFrame(data=countryData)

假设我想过滤掉在16以上的结果。

第一步是选择平均的列:

dataSet['averageRate']

下一步是放置条件:

dataSet['averageRate'] > 16

下一步是找出它的北京快3app框:

dataSet[dataSet['averageRate'] > 16]

# output:
   averageRate country  population
1           37   China         880
2           18  France         990

我们也可以使用Numpy在Pandas中使用逻辑和/或条件。假设我想要平均超过16且少于30的结果:

import pandas as ps
import numpy as np

countryData = { 
              'country': ['India', 'China', 'France'], 
              'population': [560, 880, 990], 
              'averageRate': [15, 37, 18] 
}

dataSet = ps.DataFrame(data=countryData)
dataSet[np.logical_and(dataSet['averageRate'] > 16, dataSet['averageRate'] < 30)]

# output
averageRate country  population
2           18  France         990

循环 熊猫 dataframes.

通常使用kanas dataframe迭代使用iTerrows()方法。考虑下面显示的示例:

import pandas as ps

countryData = { 
              'country': ['India', 'China', 'France'], 
              'population': [560, 880, 990], 
              'averageRate': [15, 37, 18] 
}

dataSet = ps.DataFrame(data=countryData)

for index, row in dataSet.iterrows():
    print(index)
    print(row)

如果我们想要获取特定列的北京快3app:

for index, row in dataSet.iterrows() :
    print(str(index) +': '+ str(row['country']))

# ouput:
0: India
1: China
2: France

如果我们要将新列添加到我们创建的上面的北京快3app集中,该怎么办?是的,我们也可以在熊猫那么做:

for index, row in dataSet.iterrows() :
       dataSet.loc[index, "new_averageRate"] = row["averageRate"] * 1.5

# ouput:
averageRate country  population  new_averageRate
0           15   India         560             22.5
1           37   China         880             55.5
2           18  France         990             27.0

在上图中,您可以看到我们使用LOC将新列添加到行。我们正在创建新的计算为平均速率的1.5倍。

要了解更多关于熊猫的访问: 熊猫的推进概念

在此帖子中,我们了解如何使用各种Python软件包进行北京快3app科学。我希望它会给你一个很好的踢球,从成为北京快3app科学家的道路。我将在下一个教程中涵盖Scikit-Groods包。保持调整和快乐的学习。

作者信息

Tavish Aggarwal.

网站: http://tavishaggarwal.com

Tavish Aggarwal.是一个北京快3app科学家 在一个海德拉巴工作,具有广泛的经验,在跨电子商务,财务,医疗保健等等不同领域解决现实世界的业务问题。 他对技术充满热情,喜欢在团队中工作。