基于Python 3.6.3
多数服从少数
numpy.array中数值类型必须保持一致,当不一致时,服从“多数服从少数”原则,自动更改为一致形式。
import numpy
numbers = numpy.array([1, 2, 3, 4])
print (numbers)
numbers.dtype ##查看数据类型##
输出结果为:
[1 2 3 4]
dtype('int32')
例1.更改其中一个数值的类型
import numpy
numbers = numpy.array([1, 2, 3, 4.0])
print (numbers)
numbers.dtype
输出结果为:
[ 1. 2. 3. 4.]
dtype('float64')
例2.更改其中一个数值的类型
import numpy
numbers = numpy.array([1, 2, 3, '4'])
print (numbers)
numbers.dtype
输出结果为:
['1' '2' '3' '4']
dtype('<U11')
以上是只有一个数值与其他数值类型不同的情况,那么若存在多种数值类型的情况呢?
一开始有两个猜想:
1.与顺序有关,即以最后一位或其他位置数值的类型为准;
2.与数值类型的优先级有关。
不妨试一试
例3
import numpy
numbers = numpy.array([1, 2, 3, '4', 5.0])
print (numbers)
numbers.dtype
输出结果为:
['1' '2' '3' '4' '5.0']
dtype('<U11')
例4
import numpy
numbers = numpy.array([1, 2, 3, 4.0, '5'])
print (numbers)
numbers.dtype
输出结果为:
['1' '2' '3' '4.0' '5']
dtype('<U32')
例3、例4可以否定假设1,也即与顺序无关。
那么应该是与优先级有关,观察结果我们可以发现,当数值中存在字符类型时,程序会将所有数据都转化为字符类型,也即
网友评论